{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "64624d64",
   "metadata": {},
   "source": [
    "# Pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "41e43161",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入必要包\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import random"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5ad7700f",
   "metadata": {},
   "source": [
    "## 基础数据操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "91e11e8c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.21172291, -1.33706327, -0.59097184, -0.68204128, -0.42968917],\n",
       "       [-0.05081572,  1.25865897,  0.00626084,  0.64242872,  0.18141654],\n",
       "       [-1.16394895, -0.36924738,  2.31600114, -0.14810191,  0.75289353],\n",
       "       [-0.95849366, -2.29169295, -0.31059884, -1.22156919,  1.52702397],\n",
       "       [ 1.58212608,  0.90305841,  0.27051581, -1.95161211,  0.44582328],\n",
       "       [-0.65774388,  0.01871861, -1.83877512, -0.50780723,  0.95280702],\n",
       "       [ 2.34012866,  0.38096497,  0.93284571,  1.20617563, -0.97910504],\n",
       "       [-0.95918886,  2.53669925,  0.381637  , -0.25434719,  0.22420366],\n",
       "       [ 1.02700806,  0.27640665, -0.5542447 ,  0.53879298,  0.69533043],\n",
       "       [ 0.16545698,  1.20189702,  0.22219182, -0.85453903, -1.10434998]])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_change = np.random.normal(0, 1, (10, 5))\n",
    "\n",
    "stock_change"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ede4f124",
   "metadata": {},
   "source": [
    "### DateFrame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "fea8946e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.211723</td>\n",
       "      <td>-1.337063</td>\n",
       "      <td>-0.590972</td>\n",
       "      <td>-0.682041</td>\n",
       "      <td>-0.429689</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.050816</td>\n",
       "      <td>1.258659</td>\n",
       "      <td>0.006261</td>\n",
       "      <td>0.642429</td>\n",
       "      <td>0.181417</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.163949</td>\n",
       "      <td>-0.369247</td>\n",
       "      <td>2.316001</td>\n",
       "      <td>-0.148102</td>\n",
       "      <td>0.752894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.958494</td>\n",
       "      <td>-2.291693</td>\n",
       "      <td>-0.310599</td>\n",
       "      <td>-1.221569</td>\n",
       "      <td>1.527024</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.582126</td>\n",
       "      <td>0.903058</td>\n",
       "      <td>0.270516</td>\n",
       "      <td>-1.951612</td>\n",
       "      <td>0.445823</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>-0.657744</td>\n",
       "      <td>0.018719</td>\n",
       "      <td>-1.838775</td>\n",
       "      <td>-0.507807</td>\n",
       "      <td>0.952807</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2.340129</td>\n",
       "      <td>0.380965</td>\n",
       "      <td>0.932846</td>\n",
       "      <td>1.206176</td>\n",
       "      <td>-0.979105</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>-0.959189</td>\n",
       "      <td>2.536699</td>\n",
       "      <td>0.381637</td>\n",
       "      <td>-0.254347</td>\n",
       "      <td>0.224204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1.027008</td>\n",
       "      <td>0.276407</td>\n",
       "      <td>-0.554245</td>\n",
       "      <td>0.538793</td>\n",
       "      <td>0.695330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.165457</td>\n",
       "      <td>1.201897</td>\n",
       "      <td>0.222192</td>\n",
       "      <td>-0.854539</td>\n",
       "      <td>-1.104350</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1         2         3         4\n",
       "0  0.211723 -1.337063 -0.590972 -0.682041 -0.429689\n",
       "1 -0.050816  1.258659  0.006261  0.642429  0.181417\n",
       "2 -1.163949 -0.369247  2.316001 -0.148102  0.752894\n",
       "3 -0.958494 -2.291693 -0.310599 -1.221569  1.527024\n",
       "4  1.582126  0.903058  0.270516 -1.951612  0.445823\n",
       "5 -0.657744  0.018719 -1.838775 -0.507807  0.952807\n",
       "6  2.340129  0.380965  0.932846  1.206176 -0.979105\n",
       "7 -0.959189  2.536699  0.381637 -0.254347  0.224204\n",
       "8  1.027008  0.276407 -0.554245  0.538793  0.695330\n",
       "9  0.165457  1.201897  0.222192 -0.854539 -1.104350"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 创建表格对象\n",
    "stock_rise = pd.DataFrame(stock_change)\n",
    "\n",
    "stock_rise"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "4b91c1a1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_change.shape[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a58b9e25",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_change.shape[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "2a4fc9e7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['股票1', '股票2', '股票3', '股票4', '股票5', '股票6', '股票7', '股票8', '股票9', '股票10']"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_code = [\"股票{}\".format(i+1) for i in range(stock_rise.shape[0])]\n",
    "\n",
    "stock_code"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "a6248d74",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>股票1</th>\n",
       "      <td>0.211723</td>\n",
       "      <td>-1.337063</td>\n",
       "      <td>-0.590972</td>\n",
       "      <td>-0.682041</td>\n",
       "      <td>-0.429689</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票2</th>\n",
       "      <td>-0.050816</td>\n",
       "      <td>1.258659</td>\n",
       "      <td>0.006261</td>\n",
       "      <td>0.642429</td>\n",
       "      <td>0.181417</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票3</th>\n",
       "      <td>-1.163949</td>\n",
       "      <td>-0.369247</td>\n",
       "      <td>2.316001</td>\n",
       "      <td>-0.148102</td>\n",
       "      <td>0.752894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票4</th>\n",
       "      <td>-0.958494</td>\n",
       "      <td>-2.291693</td>\n",
       "      <td>-0.310599</td>\n",
       "      <td>-1.221569</td>\n",
       "      <td>1.527024</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票5</th>\n",
       "      <td>1.582126</td>\n",
       "      <td>0.903058</td>\n",
       "      <td>0.270516</td>\n",
       "      <td>-1.951612</td>\n",
       "      <td>0.445823</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票6</th>\n",
       "      <td>-0.657744</td>\n",
       "      <td>0.018719</td>\n",
       "      <td>-1.838775</td>\n",
       "      <td>-0.507807</td>\n",
       "      <td>0.952807</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票7</th>\n",
       "      <td>2.340129</td>\n",
       "      <td>0.380965</td>\n",
       "      <td>0.932846</td>\n",
       "      <td>1.206176</td>\n",
       "      <td>-0.979105</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票8</th>\n",
       "      <td>-0.959189</td>\n",
       "      <td>2.536699</td>\n",
       "      <td>0.381637</td>\n",
       "      <td>-0.254347</td>\n",
       "      <td>0.224204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票9</th>\n",
       "      <td>1.027008</td>\n",
       "      <td>0.276407</td>\n",
       "      <td>-0.554245</td>\n",
       "      <td>0.538793</td>\n",
       "      <td>0.695330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票10</th>\n",
       "      <td>0.165457</td>\n",
       "      <td>1.201897</td>\n",
       "      <td>0.222192</td>\n",
       "      <td>-0.854539</td>\n",
       "      <td>-1.104350</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             0         1         2         3         4\n",
       "股票1   0.211723 -1.337063 -0.590972 -0.682041 -0.429689\n",
       "股票2  -0.050816  1.258659  0.006261  0.642429  0.181417\n",
       "股票3  -1.163949 -0.369247  2.316001 -0.148102  0.752894\n",
       "股票4  -0.958494 -2.291693 -0.310599 -1.221569  1.527024\n",
       "股票5   1.582126  0.903058  0.270516 -1.951612  0.445823\n",
       "股票6  -0.657744  0.018719 -1.838775 -0.507807  0.952807\n",
       "股票7   2.340129  0.380965  0.932846  1.206176 -0.979105\n",
       "股票8  -0.959189  2.536699  0.381637 -0.254347  0.224204\n",
       "股票9   1.027008  0.276407 -0.554245  0.538793  0.695330\n",
       "股票10  0.165457  1.201897  0.222192 -0.854539 -1.104350"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.DataFrame(stock_change, index=stock_code)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "395b778f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2019-04-03', '2019-04-04', '2019-04-05', '2019-04-08',\n",
       "               '2019-04-09'],\n",
       "              dtype='datetime64[ns]', freq='B')"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "date = pd.date_range(start = \"20190403\", periods = stock_rise.shape[1], freq = \"B\")\n",
    "\n",
    "date"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "cc43a268",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>2019-04-03</th>\n",
       "      <th>2019-04-04</th>\n",
       "      <th>2019-04-05</th>\n",
       "      <th>2019-04-08</th>\n",
       "      <th>2019-04-09</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>股票1</th>\n",
       "      <td>0.211723</td>\n",
       "      <td>-1.337063</td>\n",
       "      <td>-0.590972</td>\n",
       "      <td>-0.682041</td>\n",
       "      <td>-0.429689</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票2</th>\n",
       "      <td>-0.050816</td>\n",
       "      <td>1.258659</td>\n",
       "      <td>0.006261</td>\n",
       "      <td>0.642429</td>\n",
       "      <td>0.181417</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票3</th>\n",
       "      <td>-1.163949</td>\n",
       "      <td>-0.369247</td>\n",
       "      <td>2.316001</td>\n",
       "      <td>-0.148102</td>\n",
       "      <td>0.752894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票4</th>\n",
       "      <td>-0.958494</td>\n",
       "      <td>-2.291693</td>\n",
       "      <td>-0.310599</td>\n",
       "      <td>-1.221569</td>\n",
       "      <td>1.527024</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票5</th>\n",
       "      <td>1.582126</td>\n",
       "      <td>0.903058</td>\n",
       "      <td>0.270516</td>\n",
       "      <td>-1.951612</td>\n",
       "      <td>0.445823</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票6</th>\n",
       "      <td>-0.657744</td>\n",
       "      <td>0.018719</td>\n",
       "      <td>-1.838775</td>\n",
       "      <td>-0.507807</td>\n",
       "      <td>0.952807</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票7</th>\n",
       "      <td>2.340129</td>\n",
       "      <td>0.380965</td>\n",
       "      <td>0.932846</td>\n",
       "      <td>1.206176</td>\n",
       "      <td>-0.979105</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票8</th>\n",
       "      <td>-0.959189</td>\n",
       "      <td>2.536699</td>\n",
       "      <td>0.381637</td>\n",
       "      <td>-0.254347</td>\n",
       "      <td>0.224204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票9</th>\n",
       "      <td>1.027008</td>\n",
       "      <td>0.276407</td>\n",
       "      <td>-0.554245</td>\n",
       "      <td>0.538793</td>\n",
       "      <td>0.695330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票10</th>\n",
       "      <td>0.165457</td>\n",
       "      <td>1.201897</td>\n",
       "      <td>0.222192</td>\n",
       "      <td>-0.854539</td>\n",
       "      <td>-1.104350</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      2019-04-03  2019-04-04  2019-04-05  2019-04-08  2019-04-09\n",
       "股票1     0.211723   -1.337063   -0.590972   -0.682041   -0.429689\n",
       "股票2    -0.050816    1.258659    0.006261    0.642429    0.181417\n",
       "股票3    -1.163949   -0.369247    2.316001   -0.148102    0.752894\n",
       "股票4    -0.958494   -2.291693   -0.310599   -1.221569    1.527024\n",
       "股票5     1.582126    0.903058    0.270516   -1.951612    0.445823\n",
       "股票6    -0.657744    0.018719   -1.838775   -0.507807    0.952807\n",
       "股票7     2.340129    0.380965    0.932846    1.206176   -0.979105\n",
       "股票8    -0.959189    2.536699    0.381637   -0.254347    0.224204\n",
       "股票9     1.027008    0.276407   -0.554245    0.538793    0.695330\n",
       "股票10    0.165457    1.201897    0.222192   -0.854539   -1.104350"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_c = pd.DataFrame(stock_change, index = stock_code, columns = date)\n",
    "stock_c"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dffe5065",
   "metadata": {},
   "source": [
    "### 属性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "9216afac",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10, 5)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_c.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "6720cc72",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['股票1', '股票2', '股票3', '股票4', '股票5', '股票6', '股票7', '股票8', '股票9', '股票10'], dtype='object')"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_c.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "6d3e7232",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2019-04-03', '2019-04-04', '2019-04-05', '2019-04-08',\n",
       "               '2019-04-09'],\n",
       "              dtype='datetime64[ns]', freq='B')"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_c.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "2aefa2fa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.21172291, -1.33706327, -0.59097184, -0.68204128, -0.42968917],\n",
       "       [-0.05081572,  1.25865897,  0.00626084,  0.64242872,  0.18141654],\n",
       "       [-1.16394895, -0.36924738,  2.31600114, -0.14810191,  0.75289353],\n",
       "       [-0.95849366, -2.29169295, -0.31059884, -1.22156919,  1.52702397],\n",
       "       [ 1.58212608,  0.90305841,  0.27051581, -1.95161211,  0.44582328],\n",
       "       [-0.65774388,  0.01871861, -1.83877512, -0.50780723,  0.95280702],\n",
       "       [ 2.34012866,  0.38096497,  0.93284571,  1.20617563, -0.97910504],\n",
       "       [-0.95918886,  2.53669925,  0.381637  , -0.25434719,  0.22420366],\n",
       "       [ 1.02700806,  0.27640665, -0.5542447 ,  0.53879298,  0.69533043],\n",
       "       [ 0.16545698,  1.20189702,  0.22219182, -0.85453903, -1.10434998]])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_c.values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "a62e37b6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>股票1</th>\n",
       "      <th>股票2</th>\n",
       "      <th>股票3</th>\n",
       "      <th>股票4</th>\n",
       "      <th>股票5</th>\n",
       "      <th>股票6</th>\n",
       "      <th>股票7</th>\n",
       "      <th>股票8</th>\n",
       "      <th>股票9</th>\n",
       "      <th>股票10</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-04-03</th>\n",
       "      <td>0.211723</td>\n",
       "      <td>-0.050816</td>\n",
       "      <td>-1.163949</td>\n",
       "      <td>-0.958494</td>\n",
       "      <td>1.582126</td>\n",
       "      <td>-0.657744</td>\n",
       "      <td>2.340129</td>\n",
       "      <td>-0.959189</td>\n",
       "      <td>1.027008</td>\n",
       "      <td>0.165457</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-04-04</th>\n",
       "      <td>-1.337063</td>\n",
       "      <td>1.258659</td>\n",
       "      <td>-0.369247</td>\n",
       "      <td>-2.291693</td>\n",
       "      <td>0.903058</td>\n",
       "      <td>0.018719</td>\n",
       "      <td>0.380965</td>\n",
       "      <td>2.536699</td>\n",
       "      <td>0.276407</td>\n",
       "      <td>1.201897</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-04-05</th>\n",
       "      <td>-0.590972</td>\n",
       "      <td>0.006261</td>\n",
       "      <td>2.316001</td>\n",
       "      <td>-0.310599</td>\n",
       "      <td>0.270516</td>\n",
       "      <td>-1.838775</td>\n",
       "      <td>0.932846</td>\n",
       "      <td>0.381637</td>\n",
       "      <td>-0.554245</td>\n",
       "      <td>0.222192</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-04-08</th>\n",
       "      <td>-0.682041</td>\n",
       "      <td>0.642429</td>\n",
       "      <td>-0.148102</td>\n",
       "      <td>-1.221569</td>\n",
       "      <td>-1.951612</td>\n",
       "      <td>-0.507807</td>\n",
       "      <td>1.206176</td>\n",
       "      <td>-0.254347</td>\n",
       "      <td>0.538793</td>\n",
       "      <td>-0.854539</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-04-09</th>\n",
       "      <td>-0.429689</td>\n",
       "      <td>0.181417</td>\n",
       "      <td>0.752894</td>\n",
       "      <td>1.527024</td>\n",
       "      <td>0.445823</td>\n",
       "      <td>0.952807</td>\n",
       "      <td>-0.979105</td>\n",
       "      <td>0.224204</td>\n",
       "      <td>0.695330</td>\n",
       "      <td>-1.104350</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 股票1       股票2       股票3       股票4       股票5       股票6  \\\n",
       "2019-04-03  0.211723 -0.050816 -1.163949 -0.958494  1.582126 -0.657744   \n",
       "2019-04-04 -1.337063  1.258659 -0.369247 -2.291693  0.903058  0.018719   \n",
       "2019-04-05 -0.590972  0.006261  2.316001 -0.310599  0.270516 -1.838775   \n",
       "2019-04-08 -0.682041  0.642429 -0.148102 -1.221569 -1.951612 -0.507807   \n",
       "2019-04-09 -0.429689  0.181417  0.752894  1.527024  0.445823  0.952807   \n",
       "\n",
       "                 股票7       股票8       股票9      股票10  \n",
       "2019-04-03  2.340129 -0.959189  1.027008  0.165457  \n",
       "2019-04-04  0.380965  2.536699  0.276407  1.201897  \n",
       "2019-04-05  0.932846  0.381637 -0.554245  0.222192  \n",
       "2019-04-08  1.206176 -0.254347  0.538793 -0.854539  \n",
       "2019-04-09 -0.979105  0.224204  0.695330 -1.104350  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_c.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "f6ac312d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>2019-04-03</th>\n",
       "      <th>2019-04-04</th>\n",
       "      <th>2019-04-05</th>\n",
       "      <th>2019-04-08</th>\n",
       "      <th>2019-04-09</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>股票1</th>\n",
       "      <td>0.211723</td>\n",
       "      <td>-1.337063</td>\n",
       "      <td>-0.590972</td>\n",
       "      <td>-0.682041</td>\n",
       "      <td>-0.429689</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票2</th>\n",
       "      <td>-0.050816</td>\n",
       "      <td>1.258659</td>\n",
       "      <td>0.006261</td>\n",
       "      <td>0.642429</td>\n",
       "      <td>0.181417</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票3</th>\n",
       "      <td>-1.163949</td>\n",
       "      <td>-0.369247</td>\n",
       "      <td>2.316001</td>\n",
       "      <td>-0.148102</td>\n",
       "      <td>0.752894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票4</th>\n",
       "      <td>-0.958494</td>\n",
       "      <td>-2.291693</td>\n",
       "      <td>-0.310599</td>\n",
       "      <td>-1.221569</td>\n",
       "      <td>1.527024</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票5</th>\n",
       "      <td>1.582126</td>\n",
       "      <td>0.903058</td>\n",
       "      <td>0.270516</td>\n",
       "      <td>-1.951612</td>\n",
       "      <td>0.445823</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     2019-04-03  2019-04-04  2019-04-05  2019-04-08  2019-04-09\n",
       "股票1    0.211723   -1.337063   -0.590972   -0.682041   -0.429689\n",
       "股票2   -0.050816    1.258659    0.006261    0.642429    0.181417\n",
       "股票3   -1.163949   -0.369247    2.316001   -0.148102    0.752894\n",
       "股票4   -0.958494   -2.291693   -0.310599   -1.221569    1.527024\n",
       "股票5    1.582126    0.903058    0.270516   -1.951612    0.445823"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_c.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "33350532",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>2019-04-03</th>\n",
       "      <th>2019-04-04</th>\n",
       "      <th>2019-04-05</th>\n",
       "      <th>2019-04-08</th>\n",
       "      <th>2019-04-09</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>股票6</th>\n",
       "      <td>-0.657744</td>\n",
       "      <td>0.018719</td>\n",
       "      <td>-1.838775</td>\n",
       "      <td>-0.507807</td>\n",
       "      <td>0.952807</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票7</th>\n",
       "      <td>2.340129</td>\n",
       "      <td>0.380965</td>\n",
       "      <td>0.932846</td>\n",
       "      <td>1.206176</td>\n",
       "      <td>-0.979105</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票8</th>\n",
       "      <td>-0.959189</td>\n",
       "      <td>2.536699</td>\n",
       "      <td>0.381637</td>\n",
       "      <td>-0.254347</td>\n",
       "      <td>0.224204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票9</th>\n",
       "      <td>1.027008</td>\n",
       "      <td>0.276407</td>\n",
       "      <td>-0.554245</td>\n",
       "      <td>0.538793</td>\n",
       "      <td>0.695330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票10</th>\n",
       "      <td>0.165457</td>\n",
       "      <td>1.201897</td>\n",
       "      <td>0.222192</td>\n",
       "      <td>-0.854539</td>\n",
       "      <td>-1.104350</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      2019-04-03  2019-04-04  2019-04-05  2019-04-08  2019-04-09\n",
       "股票6    -0.657744    0.018719   -1.838775   -0.507807    0.952807\n",
       "股票7     2.340129    0.380965    0.932846    1.206176   -0.979105\n",
       "股票8    -0.959189    2.536699    0.381637   -0.254347    0.224204\n",
       "股票9     1.027008    0.276407   -0.554245    0.538793    0.695330\n",
       "股票10    0.165457    1.201897    0.222192   -0.854539   -1.104350"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_c.tail(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "04125618",
   "metadata": {},
   "source": [
    "### 修改索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "222405a2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>2019-04-03</th>\n",
       "      <th>2019-04-04</th>\n",
       "      <th>2019-04-05</th>\n",
       "      <th>2019-04-08</th>\n",
       "      <th>2019-04-09</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>股票_1</th>\n",
       "      <td>0.211723</td>\n",
       "      <td>-1.337063</td>\n",
       "      <td>-0.590972</td>\n",
       "      <td>-0.682041</td>\n",
       "      <td>-0.429689</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票_2</th>\n",
       "      <td>-0.050816</td>\n",
       "      <td>1.258659</td>\n",
       "      <td>0.006261</td>\n",
       "      <td>0.642429</td>\n",
       "      <td>0.181417</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票_3</th>\n",
       "      <td>-1.163949</td>\n",
       "      <td>-0.369247</td>\n",
       "      <td>2.316001</td>\n",
       "      <td>-0.148102</td>\n",
       "      <td>0.752894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票_4</th>\n",
       "      <td>-0.958494</td>\n",
       "      <td>-2.291693</td>\n",
       "      <td>-0.310599</td>\n",
       "      <td>-1.221569</td>\n",
       "      <td>1.527024</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票_5</th>\n",
       "      <td>1.582126</td>\n",
       "      <td>0.903058</td>\n",
       "      <td>0.270516</td>\n",
       "      <td>-1.951612</td>\n",
       "      <td>0.445823</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票_6</th>\n",
       "      <td>-0.657744</td>\n",
       "      <td>0.018719</td>\n",
       "      <td>-1.838775</td>\n",
       "      <td>-0.507807</td>\n",
       "      <td>0.952807</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票_7</th>\n",
       "      <td>2.340129</td>\n",
       "      <td>0.380965</td>\n",
       "      <td>0.932846</td>\n",
       "      <td>1.206176</td>\n",
       "      <td>-0.979105</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票_8</th>\n",
       "      <td>-0.959189</td>\n",
       "      <td>2.536699</td>\n",
       "      <td>0.381637</td>\n",
       "      <td>-0.254347</td>\n",
       "      <td>0.224204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票_9</th>\n",
       "      <td>1.027008</td>\n",
       "      <td>0.276407</td>\n",
       "      <td>-0.554245</td>\n",
       "      <td>0.538793</td>\n",
       "      <td>0.695330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>股票_10</th>\n",
       "      <td>0.165457</td>\n",
       "      <td>1.201897</td>\n",
       "      <td>0.222192</td>\n",
       "      <td>-0.854539</td>\n",
       "      <td>-1.104350</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       2019-04-03  2019-04-04  2019-04-05  2019-04-08  2019-04-09\n",
       "股票_1     0.211723   -1.337063   -0.590972   -0.682041   -0.429689\n",
       "股票_2    -0.050816    1.258659    0.006261    0.642429    0.181417\n",
       "股票_3    -1.163949   -0.369247    2.316001   -0.148102    0.752894\n",
       "股票_4    -0.958494   -2.291693   -0.310599   -1.221569    1.527024\n",
       "股票_5     1.582126    0.903058    0.270516   -1.951612    0.445823\n",
       "股票_6    -0.657744    0.018719   -1.838775   -0.507807    0.952807\n",
       "股票_7     2.340129    0.380965    0.932846    1.206176   -0.979105\n",
       "股票_8    -0.959189    2.536699    0.381637   -0.254347    0.224204\n",
       "股票_9     1.027008    0.276407   -0.554245    0.538793    0.695330\n",
       "股票_10    0.165457    1.201897    0.222192   -0.854539   -1.104350"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 修改索引\n",
    "stock_c.index = [\"股票_{}\".format(i + 1) for i in range(stock_rise.shape[0])]\n",
    "\n",
    "stock_c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "a222e622",
   "metadata": {},
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "Index does not support mutable operations",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "Cell \u001b[1;32mIn[18], line 2\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[38;5;66;03m# 错误修改方式\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m \u001b[43mstock_c\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m]\u001b[49m \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m股票_3\u001b[39m\u001b[38;5;124m\"\u001b[39m\n",
      "File \u001b[1;32mD:\\PythonVirtualenv\\envAi\\Lib\\site-packages\\pandas\\core\\indexes\\base.py:5371\u001b[0m, in \u001b[0;36mIndex.__setitem__\u001b[1;34m(self, key, value)\u001b[0m\n\u001b[0;32m   5369\u001b[0m \u001b[38;5;129m@final\u001b[39m\n\u001b[0;32m   5370\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__setitem__\u001b[39m(\u001b[38;5;28mself\u001b[39m, key, value) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m-> 5371\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mIndex does not support mutable operations\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
      "\u001b[1;31mTypeError\u001b[0m: Index does not support mutable operations"
     ]
    }
   ],
   "source": [
    "# 错误修改方式\n",
    "stock_c.index[3] = \"股票_3\""
   ]
  },
  {
   "cell_type": "markdown",
   "id": "409962a0",
   "metadata": {},
   "source": [
    "### 重设索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "4a1bf077",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>2019-04-03 00:00:00</th>\n",
       "      <th>2019-04-04 00:00:00</th>\n",
       "      <th>2019-04-05 00:00:00</th>\n",
       "      <th>2019-04-08 00:00:00</th>\n",
       "      <th>2019-04-09 00:00:00</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>股票_1</td>\n",
       "      <td>0.211723</td>\n",
       "      <td>-1.337063</td>\n",
       "      <td>-0.590972</td>\n",
       "      <td>-0.682041</td>\n",
       "      <td>-0.429689</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>股票_2</td>\n",
       "      <td>-0.050816</td>\n",
       "      <td>1.258659</td>\n",
       "      <td>0.006261</td>\n",
       "      <td>0.642429</td>\n",
       "      <td>0.181417</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>股票_3</td>\n",
       "      <td>-1.163949</td>\n",
       "      <td>-0.369247</td>\n",
       "      <td>2.316001</td>\n",
       "      <td>-0.148102</td>\n",
       "      <td>0.752894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>股票_4</td>\n",
       "      <td>-0.958494</td>\n",
       "      <td>-2.291693</td>\n",
       "      <td>-0.310599</td>\n",
       "      <td>-1.221569</td>\n",
       "      <td>1.527024</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>股票_5</td>\n",
       "      <td>1.582126</td>\n",
       "      <td>0.903058</td>\n",
       "      <td>0.270516</td>\n",
       "      <td>-1.951612</td>\n",
       "      <td>0.445823</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>股票_6</td>\n",
       "      <td>-0.657744</td>\n",
       "      <td>0.018719</td>\n",
       "      <td>-1.838775</td>\n",
       "      <td>-0.507807</td>\n",
       "      <td>0.952807</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>股票_7</td>\n",
       "      <td>2.340129</td>\n",
       "      <td>0.380965</td>\n",
       "      <td>0.932846</td>\n",
       "      <td>1.206176</td>\n",
       "      <td>-0.979105</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>股票_8</td>\n",
       "      <td>-0.959189</td>\n",
       "      <td>2.536699</td>\n",
       "      <td>0.381637</td>\n",
       "      <td>-0.254347</td>\n",
       "      <td>0.224204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>股票_9</td>\n",
       "      <td>1.027008</td>\n",
       "      <td>0.276407</td>\n",
       "      <td>-0.554245</td>\n",
       "      <td>0.538793</td>\n",
       "      <td>0.695330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>股票_10</td>\n",
       "      <td>0.165457</td>\n",
       "      <td>1.201897</td>\n",
       "      <td>0.222192</td>\n",
       "      <td>-0.854539</td>\n",
       "      <td>-1.104350</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   index  2019-04-03 00:00:00  2019-04-04 00:00:00  2019-04-05 00:00:00  \\\n",
       "0   股票_1             0.211723            -1.337063            -0.590972   \n",
       "1   股票_2            -0.050816             1.258659             0.006261   \n",
       "2   股票_3            -1.163949            -0.369247             2.316001   \n",
       "3   股票_4            -0.958494            -2.291693            -0.310599   \n",
       "4   股票_5             1.582126             0.903058             0.270516   \n",
       "5   股票_6            -0.657744             0.018719            -1.838775   \n",
       "6   股票_7             2.340129             0.380965             0.932846   \n",
       "7   股票_8            -0.959189             2.536699             0.381637   \n",
       "8   股票_9             1.027008             0.276407            -0.554245   \n",
       "9  股票_10             0.165457             1.201897             0.222192   \n",
       "\n",
       "   2019-04-08 00:00:00  2019-04-09 00:00:00  \n",
       "0            -0.682041            -0.429689  \n",
       "1             0.642429             0.181417  \n",
       "2            -0.148102             0.752894  \n",
       "3            -1.221569             1.527024  \n",
       "4            -1.951612             0.445823  \n",
       "5            -0.507807             0.952807  \n",
       "6             1.206176            -0.979105  \n",
       "7            -0.254347             0.224204  \n",
       "8             0.538793             0.695330  \n",
       "9            -0.854539            -1.104350  "
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_c.reset_index()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "6cc847b3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>2019-04-03</th>\n",
       "      <th>2019-04-04</th>\n",
       "      <th>2019-04-05</th>\n",
       "      <th>2019-04-08</th>\n",
       "      <th>2019-04-09</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.211723</td>\n",
       "      <td>-1.337063</td>\n",
       "      <td>-0.590972</td>\n",
       "      <td>-0.682041</td>\n",
       "      <td>-0.429689</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.050816</td>\n",
       "      <td>1.258659</td>\n",
       "      <td>0.006261</td>\n",
       "      <td>0.642429</td>\n",
       "      <td>0.181417</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.163949</td>\n",
       "      <td>-0.369247</td>\n",
       "      <td>2.316001</td>\n",
       "      <td>-0.148102</td>\n",
       "      <td>0.752894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.958494</td>\n",
       "      <td>-2.291693</td>\n",
       "      <td>-0.310599</td>\n",
       "      <td>-1.221569</td>\n",
       "      <td>1.527024</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.582126</td>\n",
       "      <td>0.903058</td>\n",
       "      <td>0.270516</td>\n",
       "      <td>-1.951612</td>\n",
       "      <td>0.445823</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>-0.657744</td>\n",
       "      <td>0.018719</td>\n",
       "      <td>-1.838775</td>\n",
       "      <td>-0.507807</td>\n",
       "      <td>0.952807</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2.340129</td>\n",
       "      <td>0.380965</td>\n",
       "      <td>0.932846</td>\n",
       "      <td>1.206176</td>\n",
       "      <td>-0.979105</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>-0.959189</td>\n",
       "      <td>2.536699</td>\n",
       "      <td>0.381637</td>\n",
       "      <td>-0.254347</td>\n",
       "      <td>0.224204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1.027008</td>\n",
       "      <td>0.276407</td>\n",
       "      <td>-0.554245</td>\n",
       "      <td>0.538793</td>\n",
       "      <td>0.695330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.165457</td>\n",
       "      <td>1.201897</td>\n",
       "      <td>0.222192</td>\n",
       "      <td>-0.854539</td>\n",
       "      <td>-1.104350</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   2019-04-03  2019-04-04  2019-04-05  2019-04-08  2019-04-09\n",
       "0    0.211723   -1.337063   -0.590972   -0.682041   -0.429689\n",
       "1   -0.050816    1.258659    0.006261    0.642429    0.181417\n",
       "2   -1.163949   -0.369247    2.316001   -0.148102    0.752894\n",
       "3   -0.958494   -2.291693   -0.310599   -1.221569    1.527024\n",
       "4    1.582126    0.903058    0.270516   -1.951612    0.445823\n",
       "5   -0.657744    0.018719   -1.838775   -0.507807    0.952807\n",
       "6    2.340129    0.380965    0.932846    1.206176   -0.979105\n",
       "7   -0.959189    2.536699    0.381637   -0.254347    0.224204\n",
       "8    1.027008    0.276407   -0.554245    0.538793    0.695330\n",
       "9    0.165457    1.201897    0.222192   -0.854539   -1.104350"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_c.reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ecee0ced",
   "metadata": {},
   "source": [
    "### 以某列设置新的索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "3c3a44e2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>month</th>\n",
       "      <th>year</th>\n",
       "      <th>sale</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2012</td>\n",
       "      <td>55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>2014</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>7</td>\n",
       "      <td>2013</td>\n",
       "      <td>84</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>10</td>\n",
       "      <td>2014</td>\n",
       "      <td>31</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   month  year  sale\n",
       "0      1  2012    55\n",
       "1      4  2014    40\n",
       "2      7  2013    84\n",
       "3     10  2014    31"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.DataFrame({'month': [1, 4, 7, 10],\n",
    "                    'year': [2012, 2014, 2013, 2014],\n",
    "                    'sale':[55, 40, 84, 31]})\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "b0139936",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>month</th>\n",
       "      <th>sale</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>year</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012</th>\n",
       "      <td>1</td>\n",
       "      <td>55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014</th>\n",
       "      <td>4</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013</th>\n",
       "      <td>7</td>\n",
       "      <td>84</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014</th>\n",
       "      <td>10</td>\n",
       "      <td>31</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      month  sale\n",
       "year             \n",
       "2012      1    55\n",
       "2014      4    40\n",
       "2013      7    84\n",
       "2014     10    31"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.set_index(keys=[\"year\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "3808d6fc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>sale</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>year</th>\n",
       "      <th>month</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012</th>\n",
       "      <th>1</th>\n",
       "      <td>55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014</th>\n",
       "      <th>4</th>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013</th>\n",
       "      <th>7</th>\n",
       "      <td>84</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014</th>\n",
       "      <th>10</th>\n",
       "      <td>31</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            sale\n",
       "year month      \n",
       "2012 1        55\n",
       "2014 4        40\n",
       "2013 7        84\n",
       "2014 10       31"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 变成了一个三维数组\n",
    "df.set_index(keys=[\"year\", \"month\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "419b6bee",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "254aaa0f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3004e3b4",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2ba36826",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "541f15ac",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "08a4352c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c257f6b0",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e2690ba4",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "b4694cf1",
   "metadata": {},
   "source": [
    "# 案例"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "bb265ac9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Rank</th>\n",
       "      <th>Title</th>\n",
       "      <th>Genre</th>\n",
       "      <th>Description</th>\n",
       "      <th>Director</th>\n",
       "      <th>Actors</th>\n",
       "      <th>Year</th>\n",
       "      <th>Runtime (Minutes)</th>\n",
       "      <th>Rating</th>\n",
       "      <th>Votes</th>\n",
       "      <th>Revenue (Millions)</th>\n",
       "      <th>Metascore</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Guardians of the Galaxy</td>\n",
       "      <td>Action,Adventure,Sci-Fi</td>\n",
       "      <td>A group of intergalactic criminals are forced ...</td>\n",
       "      <td>James Gunn</td>\n",
       "      <td>Chris Pratt, Vin Diesel, Bradley Cooper, Zoe S...</td>\n",
       "      <td>2014</td>\n",
       "      <td>121</td>\n",
       "      <td>8.1</td>\n",
       "      <td>757074</td>\n",
       "      <td>333.13</td>\n",
       "      <td>76.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Prometheus</td>\n",
       "      <td>Adventure,Mystery,Sci-Fi</td>\n",
       "      <td>Following clues to the origin of mankind, a te...</td>\n",
       "      <td>Ridley Scott</td>\n",
       "      <td>Noomi Rapace, Logan Marshall-Green, Michael Fa...</td>\n",
       "      <td>2012</td>\n",
       "      <td>124</td>\n",
       "      <td>7.0</td>\n",
       "      <td>485820</td>\n",
       "      <td>126.46</td>\n",
       "      <td>65.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Split</td>\n",
       "      <td>Horror,Thriller</td>\n",
       "      <td>Three girls are kidnapped by a man with a diag...</td>\n",
       "      <td>M. Night Shyamalan</td>\n",
       "      <td>James McAvoy, Anya Taylor-Joy, Haley Lu Richar...</td>\n",
       "      <td>2016</td>\n",
       "      <td>117</td>\n",
       "      <td>7.3</td>\n",
       "      <td>157606</td>\n",
       "      <td>138.12</td>\n",
       "      <td>62.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>Sing</td>\n",
       "      <td>Animation,Comedy,Family</td>\n",
       "      <td>In a city of humanoid animals, a hustling thea...</td>\n",
       "      <td>Christophe Lourdelet</td>\n",
       "      <td>Matthew McConaughey,Reese Witherspoon, Seth Ma...</td>\n",
       "      <td>2016</td>\n",
       "      <td>108</td>\n",
       "      <td>7.2</td>\n",
       "      <td>60545</td>\n",
       "      <td>270.32</td>\n",
       "      <td>59.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>Suicide Squad</td>\n",
       "      <td>Action,Adventure,Fantasy</td>\n",
       "      <td>A secret government agency recruits some of th...</td>\n",
       "      <td>David Ayer</td>\n",
       "      <td>Will Smith, Jared Leto, Margot Robbie, Viola D...</td>\n",
       "      <td>2016</td>\n",
       "      <td>123</td>\n",
       "      <td>6.2</td>\n",
       "      <td>393727</td>\n",
       "      <td>325.02</td>\n",
       "      <td>40.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>995</th>\n",
       "      <td>996</td>\n",
       "      <td>Secret in Their Eyes</td>\n",
       "      <td>Crime,Drama,Mystery</td>\n",
       "      <td>A tight-knit team of rising investigators, alo...</td>\n",
       "      <td>Billy Ray</td>\n",
       "      <td>Chiwetel Ejiofor, Nicole Kidman, Julia Roberts...</td>\n",
       "      <td>2015</td>\n",
       "      <td>111</td>\n",
       "      <td>6.2</td>\n",
       "      <td>27585</td>\n",
       "      <td>NaN</td>\n",
       "      <td>45.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>997</td>\n",
       "      <td>Hostel: Part II</td>\n",
       "      <td>Horror</td>\n",
       "      <td>Three American college students studying abroa...</td>\n",
       "      <td>Eli Roth</td>\n",
       "      <td>Lauren German, Heather Matarazzo, Bijou Philli...</td>\n",
       "      <td>2007</td>\n",
       "      <td>94</td>\n",
       "      <td>5.5</td>\n",
       "      <td>73152</td>\n",
       "      <td>17.54</td>\n",
       "      <td>46.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>997</th>\n",
       "      <td>998</td>\n",
       "      <td>Step Up 2: The Streets</td>\n",
       "      <td>Drama,Music,Romance</td>\n",
       "      <td>Romantic sparks occur between two dance studen...</td>\n",
       "      <td>Jon M. Chu</td>\n",
       "      <td>Robert Hoffman, Briana Evigan, Cassie Ventura,...</td>\n",
       "      <td>2008</td>\n",
       "      <td>98</td>\n",
       "      <td>6.2</td>\n",
       "      <td>70699</td>\n",
       "      <td>58.01</td>\n",
       "      <td>50.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>998</th>\n",
       "      <td>999</td>\n",
       "      <td>Search Party</td>\n",
       "      <td>Adventure,Comedy</td>\n",
       "      <td>A pair of friends embark on a mission to reuni...</td>\n",
       "      <td>Scot Armstrong</td>\n",
       "      <td>Adam Pally, T.J. Miller, Thomas Middleditch,Sh...</td>\n",
       "      <td>2014</td>\n",
       "      <td>93</td>\n",
       "      <td>5.6</td>\n",
       "      <td>4881</td>\n",
       "      <td>NaN</td>\n",
       "      <td>22.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>1000</td>\n",
       "      <td>Nine Lives</td>\n",
       "      <td>Comedy,Family,Fantasy</td>\n",
       "      <td>A stuffy businessman finds himself trapped ins...</td>\n",
       "      <td>Barry Sonnenfeld</td>\n",
       "      <td>Kevin Spacey, Jennifer Garner, Robbie Amell,Ch...</td>\n",
       "      <td>2016</td>\n",
       "      <td>87</td>\n",
       "      <td>5.3</td>\n",
       "      <td>12435</td>\n",
       "      <td>19.64</td>\n",
       "      <td>11.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1000 rows × 12 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Rank                    Title                     Genre  \\\n",
       "0       1  Guardians of the Galaxy   Action,Adventure,Sci-Fi   \n",
       "1       2               Prometheus  Adventure,Mystery,Sci-Fi   \n",
       "2       3                    Split           Horror,Thriller   \n",
       "3       4                     Sing   Animation,Comedy,Family   \n",
       "4       5            Suicide Squad  Action,Adventure,Fantasy   \n",
       "..    ...                      ...                       ...   \n",
       "995   996     Secret in Their Eyes       Crime,Drama,Mystery   \n",
       "996   997          Hostel: Part II                    Horror   \n",
       "997   998   Step Up 2: The Streets       Drama,Music,Romance   \n",
       "998   999             Search Party          Adventure,Comedy   \n",
       "999  1000               Nine Lives     Comedy,Family,Fantasy   \n",
       "\n",
       "                                           Description              Director  \\\n",
       "0    A group of intergalactic criminals are forced ...            James Gunn   \n",
       "1    Following clues to the origin of mankind, a te...          Ridley Scott   \n",
       "2    Three girls are kidnapped by a man with a diag...    M. Night Shyamalan   \n",
       "3    In a city of humanoid animals, a hustling thea...  Christophe Lourdelet   \n",
       "4    A secret government agency recruits some of th...            David Ayer   \n",
       "..                                                 ...                   ...   \n",
       "995  A tight-knit team of rising investigators, alo...             Billy Ray   \n",
       "996  Three American college students studying abroa...              Eli Roth   \n",
       "997  Romantic sparks occur between two dance studen...            Jon M. Chu   \n",
       "998  A pair of friends embark on a mission to reuni...        Scot Armstrong   \n",
       "999  A stuffy businessman finds himself trapped ins...      Barry Sonnenfeld   \n",
       "\n",
       "                                                Actors  Year  \\\n",
       "0    Chris Pratt, Vin Diesel, Bradley Cooper, Zoe S...  2014   \n",
       "1    Noomi Rapace, Logan Marshall-Green, Michael Fa...  2012   \n",
       "2    James McAvoy, Anya Taylor-Joy, Haley Lu Richar...  2016   \n",
       "3    Matthew McConaughey,Reese Witherspoon, Seth Ma...  2016   \n",
       "4    Will Smith, Jared Leto, Margot Robbie, Viola D...  2016   \n",
       "..                                                 ...   ...   \n",
       "995  Chiwetel Ejiofor, Nicole Kidman, Julia Roberts...  2015   \n",
       "996  Lauren German, Heather Matarazzo, Bijou Philli...  2007   \n",
       "997  Robert Hoffman, Briana Evigan, Cassie Ventura,...  2008   \n",
       "998  Adam Pally, T.J. Miller, Thomas Middleditch,Sh...  2014   \n",
       "999  Kevin Spacey, Jennifer Garner, Robbie Amell,Ch...  2016   \n",
       "\n",
       "     Runtime (Minutes)  Rating   Votes  Revenue (Millions)  Metascore  \n",
       "0                  121     8.1  757074              333.13       76.0  \n",
       "1                  124     7.0  485820              126.46       65.0  \n",
       "2                  117     7.3  157606              138.12       62.0  \n",
       "3                  108     7.2   60545              270.32       59.0  \n",
       "4                  123     6.2  393727              325.02       40.0  \n",
       "..                 ...     ...     ...                 ...        ...  \n",
       "995                111     6.2   27585                 NaN       45.0  \n",
       "996                 94     5.5   73152               17.54       46.0  \n",
       "997                 98     6.2   70699               58.01       50.0  \n",
       "998                 93     5.6    4881                 NaN       22.0  \n",
       "999                 87     5.3   12435               19.64       11.0  \n",
       "\n",
       "[1000 rows x 12 columns]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import pandas  as pd \n",
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "#文件的路径\n",
    "path = \"./data/IMDB-Movie-Data.csv\"\n",
    "#读取文件\n",
    "df = pd.read_csv(path)\n",
    "\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a67de509",
   "metadata": {},
   "source": [
    "## 问题一"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "482b9acc",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 我们想知道这些电影数据中评分的平均分，\n",
    "# 导演的人数等信息，我们应该怎么获取？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "bd05e497",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "np.float64(6.723199999999999)"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 平均分\n",
    "df[\"Rating\"].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "a53d3623",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "644"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 得到导演人数信息\n",
    "\n",
    "# 方法一\n",
    "df[\"Director\"].unique().shape[0]\n",
    "\n",
    "# 方法二\n",
    "np.unique(df[\"Director\"]).shape[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a2993667",
   "metadata": {},
   "source": [
    "## 问题二"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "a22120db",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 对于这一组电影数据，如果我们想Rating，Runtime (Minutes)的分布情况，\n",
    "# 应该如何呈现数据？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "b640b51a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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NZVOr127NiJe/2qt5ubm7trVQmjLQy7tySWfbLLJJZ9ssskln2yyySWbXPLJJltbHjW90hbek56nLRPZtCeXfLLJJpd8sskml3xtmTieac9xXja55JNNts7kUZVS6pZn6YULF8Z+++0XJ5xwQlx88cXx1a9+NVasWBF9+vSJPffcMy699NKIiHjllVeiT58+cf/998e+++7b7jKmTZsW06dP73DZN954Y9TW1nbHbgIAAAAAABVq/fr1MX78+FizZk3U1dWV3bbbPgGybt26aGlpiQsuuCAaGxvjrLPOigMOOCA++MEPxoYdS9u/q6qqOlzG1KlTY8qUKaXTa9eujYaGhhg3btxGb8jbTXNzc9x5551xxBFHRHV19ZbenR5DLvlkk00u+WSTTS75ZJNNLtnkkk822dpyOf/PvaKpteNribezml4pvr5vq2zeQC75ZJNNLvlkk00u+dqycTzTnuO8bHLJJ5tsbd8ctSm6rQCpr6+PiIhtt902IiIGDRoUKaUYNmxYrFy5srTdqlWrIiJiyJAhHS6jpqYmampqOiyvrq52B+eQTTa55JNNNrnkk002ueSTTTa5ZJNLPtlka2qtiqYWbzJlkU02ueSTTTa55JNNNrnkczyTTS7Z5JJPNu11Jotu+xH0ESNGRHV1dSxevDgiIp599tno1atXjB07NubPn1/absGCBdHY2BjDhg3rrqsGAAAAAABop9sKkD59+sRHP/rRuPDCC+PJJ5+Mb3/723HkkUfGMcccEytWrIirr746li5dGjNmzIgJEyZ019UCAAAAAAB00G0FSETEVVddFS0tLbHHHnvEihUr4qqrror6+vqYNWtWXHHFFbH77rvHzjvvHFOnTu3OqwUAAAAAAGin234DJCJiu+22izvvvLPD8nHjxsXjjz/enVcFAAAAAACQq1s/AQIAAAAAANATKEAAAAAAAIDCUYAAAAAAAACFowABAAAAAAAKRwECAAAAAAAUjgIEAAAAAAAoHAUIAAAAAABQOAoQAAAAAACgcBQgAAAAAABA4ShAAAAAAACAwlGAAAAAAAAAhdN7S+8AAAAAAFA8e0ybE00tVVt6N3qMmq1SXD56S+8FvL34BAgAAAAAAFA4ChAAAAAAAKBwFCAAAAAAAEDhKEAAAAAAAIDCUYAAAAAAAACFowABAAAAAAAKRwECAAAAAAAUjgIE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Z50Vq1atiptuuqm0bMiQIXHllVfGxz/+8XbbTps2LaZPn745dwcAAAAAAKhwy5cvj+HDh5fdZrN/AiSiYxOTUoqqqo5t3tSpU2PKlCml062trfH888/HoEGDMrd/O1u7dm00NDTE8uXLo66ubkvvTo8hl3yyySaXfLLJJpd8sskml2xyySebbHLJJ5tscsknm2xyySebbHLJJ5tscskml3yyyZZSihdffDGGDh260W03ewGyww47xCOPPFI63dLSEqtXr44hQ4Z02LampiZqamraLRswYMDm3sWKVldXZ/BnkEs+2WSTSz7ZZJNLPtlkk0s2ueSTTTa55JNNNrnkk002ueSTTTa55JNNNrlkk0s+2XRUX1+/Sdv12sz7EWPHjo37778/XnvttYiIWLhwYfTu3Tve+973bu6rBgAAAAAA3qY2ewFy0EEHxTve8Y644IIL4umnn44LL7wwjj322Kitrd3cVw0AAAAAALxNbfYCpFevXnHLLbfEr371qxgxYkS88sorccUVV2zuqy28mpqauOCCCzp8ZdjbnVzyySabXPLJJptc8skmm1yyySWfbLLJJZ9ssskln2yyySWfbLLJJZ9sssklm1zyyebNq0pv/IVyAAAAAACACrfZPwECAAAAAADwVlOAAAAAAAAAhaMAAQAAAAAACkcBAgAAAAAAFI4CZAtbsWJFHHzwwbFo0aJN2v573/teNDQ0xMCBA+Piiy9ut27mzJnR0NAQ/fv3j7PPPjtaWlpK62bMmBHbbbddbLvttnHRRRd1503YLJ588sk4+OCDo3///nHIIYfEU089tdHzzJkzJ3bbbbcYMGBAnHrqqfHKK69ERMTcuXOjqqqq3X+nnnrqRtf1RF3J5e9//3scdthh0bdv3zj88MPj2Wefbbf+97//fRxwwAHtlqWU4gtf+ELU19fH0KFD40c/+lG33o7u1pVcyj2W8jKrtPESEfHII4/E/vvvH/369YuxY8fG448/vtHzzJs3L/bcc8/o379/HHXUUfHcc8+V1j3wwAOxzz77RF1dXRxzzDHx/PPPl9aVew7qabqSy9q1a+O4446Lvn37xujRo2Px4sUREfGTn/ykw7g45JBDIqIyx0ybu+++O6qqqmLu3Lkb3bbcff/9738/hg0bFoMGDYrPfe5z0draWlpXaXNTROdyue2222KXXXaJ+vr6OOmkk2L9+vWldT/72c9ixIgRMXDgwJg0aVK8+uqrERGxdOnS3PHU021qNuUeMxs67bTTorGxsXS60uamxsbGDrdzY+bMmRO77rpr9O3bN0488cR2YyZv3qrEMdOVbNpcd911UVVVFUuXLo2Ijd/+SpqbupLLH/7wh9hrr72irq4ujj/++HjhhRdK6/LGUyWOmebm5pg0aVL0798/Ro4cGQsWLNik8y1cuDB22223Dssffvjh2HfffaNfv37xiU98ItatWxcRlfc809lcNuW+z8qsEo9nujJm8ubmjc1blXI8k3X/b+rclPU6O+L15+Sdd945Bg8eHF/84hcjpRQR2ZlNmzZtc920N60r2Wzs8ZQ3niIqZ27q6pgp91o77/i40uamv/71r7H//vtH//7948gjj4xly5Zt9DzlXkt39b2+nqgr2eS91t7QhRde2G78VdrcNH/+/Nhzzz2jtrY2TjzxxHj55Zc3ep5yrw2K9B7wWyKxxUycODFFRIqItHDhwo1u/z//8z9pq622Srfffnu677770pAhQ9Ls2bNTSik99thjaZtttkm33XZbeuSRR9I73/nO9IMf/CCllNLvf//7VFdXl+6555503333pYEDB6bf/OY3m/OmvWkf+MAH0oQJE9LSpUvTsccem4466qiy269duzYNGDAgfec730mPPfZY2mWXXdKMGTNSSindddddaZdddkkvvPBC6b9169ZtdF1P1NlcUkpp3Lhx6bzzzktLly5NH/7wh9OnP/3p0rqtt946RUTae++9253n2muvTQ0NDemhhx5Kd9xxR9pmm23SI4880t03p9t0Npdyj6WU8jOrtPGSUkp77713uuSSS9Lf//739OlPfzoddthhZbd/+eWX05AhQ9J1112Xli9fnj784Q+n0047LaWUUktLS9p1113Teeedl5YsWZLe//73p8mTJ6eUyj8H9USdzSWl15+zTz755LRkyZJ0xhlnpMMPPzyllFJTU1O7MTFx4sR04oknppQqc8yklNKrr76a3vOe96SISHfddVfZbcvd9w8++GAaPHhw+tOf/pQefvjhtOOOO6brrrsupVSZc1NncnnmmWdSfX19mjNnTnryySfT+973vnThhRemlFJ64oknUm1tbfr1r3+dnnjiibTffvulr3/96ymllJYsWZKqq6vbjZkXX3xxc9+0N60z2ZR7zLS59957U1VVVdppp51Kyyptbtppp53SnDlz2t3Wcl544YVUV1eXrr766rRkyZI0ZsyY9OUvfzmlVH7eqsQx09ls2rzwwgtpu+22SxGRlixZklIqf/srbW7qbC5tx78/+clP0rJly9JHPvKRdPrpp6eUyo+nShwzl1xySTriiCPS448/nqZNm5ZGjBix0fPsuuuuKSJSfX19u+Wtra1pt912S9/+9rfTk08+mfbZZ5900UUXpZQq73mms7ls7L7Py6wSj2c6m025ubncvFVJxzMtLS3tbsd1112XhgwZUvY85V5nt42nn//85+nBBx9MAwcOTLfccktKKaUf//jH6dBDD213fS+//PJmv41d1ZVsyj2eyo2nSpqbupJLuWOWcsfHlTY37bLLLumiiy5Kf//739PEiRPTBz7wgbLbl3st3dX3+nqqzmaTUv5r7TZPPPFE2mabbdKGb2NX0tzU3NycGhoa0vnnn5+eeOKJ9C//8i/p3HPPLXuecsdyRXsP+K2gANmCVq5cmZYsWbLJBciVV16Z9tprr9Lpc889N5188skppZS+9rWvpQ9/+MOldf/xH/+Rxo4dm1JK6V//9V/TZz/72dK6s88+u3S+nqipqSlVVVWlhx9+OKWU0u23357q6urKnufOO+9M2223Xen0l770pfTRj340pfT6k+IBBxyQeb5y63qaruTy1FNPpXe84x2pubk5pZTSk08+mX7/+9+X1i9ZsiTNmDGjQwHyL//yL+nyyy8vnf7IRz6Szj///G66Jd2rK7mUeyyVy6ySxktKKT3//PPpoIMOSk1NTSml17PZlAPWj3zkI6XT//mf/5ne//73p5RSevzxx1NEpJdeeqm0ri3Hcs9BPU1Xclm/fn0aMGBAWrlyZUoppX/84x/pv//7vzO3HTFiRPrJT36SUqq8MdPmG9/4Rjr00ENTfX39Rt/MLnff33DDDelrX/taad0nPvGJ9G//9m8ppcqbm1LqXC6/+93v0sSJE0unv/SlL5XeLJk1a1Z697vfXVp3ySWXlDJcsmRJGjp0aPfv/GbWmWzeaMPHTEqvv0DYa6+90sc+9rF2BUglzU0pvf5m9uLFizd5+2uvvTbtvvvupdM///nP04477phSKj9vVeKY6Ww2bT7zmc+kj33sYx0KkLzbX0lzU0qdz+W+++5LNTU1pdM33nhjaQyVG0+VOGZ22WWX0uulF198Md1yyy2ppaWl7HmWL1+ebrrppg5v5t99993tjn3/+te/pgULFqSUKu95prO5bOy+z8usEo9nOptNubn5jTactyrxeKbNpz/96XTqqaeW3abc6+xrrrkm7bfffqV1n/jEJ9LnPve5lNLrBcj48eM3w16/NTYlm3KPp3LjqdLmpg1tSi7ljlnKHR9X0tz03HPPpYhIK1asSCmlNH/+/FRbW1v2POVeS3f1vb6eqCvZbMpr7Q9/+MOlY8A2lTQ3/e1vf0sRkZ5//vmUUkqzZ89ODQ0NZc9T7liuSO8Bv1V8BdYWNHjw4HZf7bAxL7/8cvTp06fd+f/nf/4nIl7/ypoNv8ZozJgx8cc//jFSSpnr5s2b9+ZvwGbS3Nwcl19+eey8884REbFq1ap2tzvL8OHD4xvf+Ebp9BvP89JLL8X73ve+6N+/f5x22mntPn5abl1P0pVc5s+fH7vttlucfvrp0a9fv/jiF78Yo0ePLq1vbGyMwYMHtztPSin++Mc/VsyY6Uou5R5LG8usUsZLRMTAgQPjnnvuia233jpeffXVmDVrVrz3ve8te56RI0fGf/3Xf0VExIsvvhi33XZb6Ty1tbXxrW99K/r27RsR7bMu9xzU03Qll7/85S9RV1cXV1xxRfTr1y8++clPthsXbR5//PF44okn4oMf/GBpWSWNmYiIp59+Oi677LL4z//8z03avtx9P378+Jg+fXpEvP6x9nvuuaeUdaXNTZ3N5bDDDovvf//7ERGxcuXKuOOOO0q3/T3veU/8/e9/j0cffTReeeWVmDt3bowaNap03q222io+8IEPRG1tbRxzzDGxZs2abr893amz2Wwo6zHz3e9+N+rr6+OUU04pLau0uanNtGnTora2NkaNGhUPP/xw2W2zHhPLli2L5cuXl523IipvzER0LpuI17824pZbbonLL7+8w7q8219Jc1ObzuTyzne+M3r37h1/+MMfoqWlJe68887Sc0m58RRRWWPmH//4RyxZsiTuvvvuqK+vj4MPPjj23nvv6NWr/EvZ4cOHx5AhQzosnzdvXuy6667xwQ9+MOrq6uLKK6+Mfffdt+KeZ7qaS7n7Pi+ziMo6nulKNhubm9u8cd6qtOOZDf3617+OD3/4w2W3Kfc6e88994x/+7d/y1wXEbFs2bJ417veFQMHDozzzjuvm/d+89qUbCLyH0/lxlMlzk1tNiWXcscs5Y6PIypnbho4cGAMHz485syZExGvf01R1vPFhsq9lu7qe309UVey2dhr7VtvvTUWL17c7vmmTaXMTW1fd9V2Pw8ePDiWL18eL730Uu55yh3LFek94LeKAqSCjBo1Kh566KFYsmRJvPDCC/Gzn/2sNCH84x//aPdG9qBBg+K1116LVatWZa574+9A9CR9+/aNL37xi9GnT59obm6Ob3/723HyySeXPc9uu+1W+q6/p556Km655ZZ251m+fHn8x3/8R8yfPz9mz54dP/7xjzdpXU/SlVxWrFgRf/7zn+M973lPLFq0KB599NG44ooryp5n1apV0dzcXDFjpiu5lHssbSyzShkvb1RbWxu//vWv48orr9yk7ZctWxYDBgyIpUuXlr6DdOjQofH5z38+IiLWrFkTP/zhD0tZl3sO6sk2NZcVK1bEypUrY926dfG3v/0tIiKmTp3aYbvbb7899tlnn9h+++1LyyptzHz+85+PSZMmxciRIzdp+02576+//vrYeeed46CDDorjjz8+93w99XkmovO5tLnnnntiu+22i379+sU555wTERG77757TJ8+PUaOHBl1dXXxwgsvxAUXXFA6z7PPPhuTJ0+Ov/71r/G///u/cdlll3XrbeluXc0mouNj5plnnomLLroorr766nbbVdrc1GbnnXeOxx9/PPbYY4/49Kc/XXbbrMdExOvjody81bZNJY2ZiM5l09raGp/5zGfioosuine84x0d1ufd/kqcmzqTy6BBg+InP/lJHHrooVFbWxtz586N73znOxFRfjy1/b9SxsyKFSuiqqoq/vSnP8Vf/vKXGDlyZJx55plv6vJuv/32OPnkk2PevHlx2223xY033lhxzzNdzaWr930lHc90JZuNzc1t3jhvVdrxTJtFixbFs88+G0cccUTZ7cq9zh4zZkwce+yxERFx//33x7333hvjx48vnffpp5+Om2++Of77v/87vvvd75beEO3pNjWbiPzHU7nxVIlzU8Sm57KxY5aI7OPjiMqZm3r37h2zZs2KSZMmRU1NTXz3u9+N6667rux5yr2W7up7fT1RV7Ip91p73bp18X//7/+NK6+8Mmpqajqct1Lmpne9611RW1sbt912W7z22mul/SxX8pU7livSe8BvFQVIBTn88MPjhBNOiHe9612x++67x5577llqjyOiXQPc9u+2Hwh647rO/NjklvLaa6/FJz/5ydhqq63iwgsv3KTzrFixIo488sg49dRT46ijjoqIiPe///2xePHiOOSQQ2LPPfeMY489Nu66666NruupOpPLunXrYuDAgfGlL30pRowYESeffHLccccdm3Q9lTZmOpNLucdSucwqcby0ue+++2KfffaJz33uc5u0/dChQ+Pee++N+vr6OP/889ute+mll+Koo46K9773vfGZz3ymtLzcc1BPtam5rFu3Ll599dW49NJLo7GxMSZOnJj5WJo9e3a7v4qqtDFzxx13xAMPPNDhPt+Yjd33H/3oR+OXv/xl3HXXXfGzn/0s93w9dbx0NZeIiH333Td+97vfxbPPPhvf/va3IyLioYceissuuyxuvfXWuO+++6K2trb043TDhw+Pp556Ko499tjYZZdd4pRTTinkmGnzxsfMOeecE6eddlq85z3vydy+UsZMxOt/tXXRRRfFsGHD4nOf+1wsWLBgoz92mPdYKjdvVdqYieh8Nt///vejqqoqzjjjjA7rNnb7K2lu6mwuzzzzTJx11llx7bXXxp///OfYb7/92r2RlHfbK23MrFu3LlpaWuKCCy6IxsbGOOuss+Kuu+7q8l95rlu3Lvbee+846aSTYs8994yPfexj7eb0Snme6UouXb3vK+14pivZlJubN/TGeSuicsbMhmbPnh37779/DBgwYJO2z3qd3eaRRx6Jj3zkI3HppZfGXnvtFRERH//4x2PhwoWxzz77xEEHHRSHHHJIjx4zG9rUbMo9njY2nippbmqzqbls7H2riOzj40qam15++eX413/915g+fXo8+OCDMWHChDjttNM26bxZr6XfzHt9PU1Xsin3WvvCCy+M0aNHx5FHHtnhfJU0N9XX18e3vvWtOOWUU2LAgAGlT4K88bHxRp15n7fcup46Xt5KCpAK8+Mf/zhWrVoVTz31VOy4446ljyjvsMMOsXLlytJ2q1atiurq6th2220z1+V9tLmnaG1tjRNOOCGWLl0ad9xxx0a/0igi4rnnnotDDjkkDjrooNIkGhGxzTbbtGs/BwwYEGvXrt3oup6os7nU19fHwIEDS092gwYN2uhfCgwaNCi23nrrihozXRkveY+lcplV2nhZuXJlLFy4MCIi9tlnn7jkkkvi9ttvL/tXBsuXL49HHnkkevfuHfvvv398+ctfjhtuuKG0fv369XHkkUdGXV1d3HzzzaWvEij3HNTTdCWX+vr62GabbaK2tjYish9L69ati7vvvjs+9KEPlZZV2pi5+eabY8WKFTF06NAYMGBArFmzJo4++ui48cYbc89T7r7/29/+Fs8880zU1dXFRz/60TjppJNK46mS5qau5PK///u/8eSTT0afPn3isMMOi7POOqt023/84x/Hhz70ofjYxz4Wo0aNigsuuKD0KaTevXu3y6GIY6ZN1mNm1qxZ8b3vfS8GDBgQJ510UunTaJU4Nw0bNqz077Y3C1588cXc7bMeExFRuo1581aljZmIzmcza9aseOihh2LbbbeNnXbaKSIi9tprr7j33nvL3v5KmpsiOp/LLbfcEu9+97vj1FNPjT333DMuu+yyuP7662P16tVlx1OljZn6+vqIiNL9NmjQoEgpxfPPP9/ly9twDLTN6ZX2PNOVXLp631fa8UxXsik3N7fJmrcq6XhmQ7Nnz253O8rJe50dEfHYY4/FoYceGp/97GdjypQppeX9+vVr90Z5Tx8zG9rUbMo9nsqNp0qbm9p0ZszkHbOUOz6upLnpN7/5Tbz66qtx3nnnxXve856YMWNGzJ8/Px566KGy58t7LR3Rtff6eqKuZFPutfasWbNi9uzZMWDAgBg7dmxEvD42li1bVnFz0xlnnBFr1qyJFStWxDHHHBM1NTVlC8Vyx3JFew/4raAAqSDz58+P0047Lerr62PrrbeO++67Lw488MCIiBg7dmzMnz+/tO2CBQviwAMPjKqqqsx1Bx100Fu+/51x/vnnxxNPPBG/+93vYuDAgRvdvrW1NY477rg48MAD45prrmnXbp544ont/tpi2bJlpd9eKbeuJ+psLiNHjoynnnoqmpqaIuL1j8pt+NU8WaqqquLAAw+sqDHT2VzKPZbKZVZp42XhwoXt/kKr7XFR7vuPf/3rX8fpp5/e7jxbbbVV6fQZZ5wR/fr1i9tuu63dR1DLPQf1NF3JZeTIkbFu3bp45plnIiL7sfTb3/42+vXrF2PGjCktq7QxM2PGjHjsscdi0aJFsWjRoujfv3/88Ic/jI9+9KO55yl3319yySXt3jzYcDxV0tzUlVyuvfba+OpXv1o6veFt32qrraKlpaW07rXXXovevXtHRMR5553X7q/cizhm2mQ9ZpYsWRJ//etfY9GiRfHNb34zhg4dGosWLaq4uen222+Pd7/73aXTy5Yti9ra2thuu+1yz5P1mGhsbIxhw4aVnbcqbcx0JZubbropHnnkkVi0aFHcc889EfH6GzH77rtv2dtfSXNTV3LJei5JKUV1dXXZ8VRpY2bEiBFRXV0dixcvjojX5+BevXp1+B27TTVy5MjSZbVd3vbbb19xzzNdyaWr932lHc90JZtyc3ObrHmrko5n2jz//POxYMGCTfqNi3Kvs9evXx8f+chH4jOf+Ux87Wtfa3e+/fffP2bOnFk63dPHTJvOZFPu8VRuPFXS3NSmM7mUO2Ypd3xcSXPTG+/flFK0trZ2eM54o7zX0l19r68n6ko25V5r33PPPfHwww/HokWL4uabb46I17+ObejQoRU1N7300kvxwQ9+MF566aXo379/u/s4T7ljuaK9B/yW6O5fVafzIiItXLiwdPqFF15Ir732Woftli1blrbeeuv061//Os2ZMyf17ds3PfnkkymllB5//PG0zTbbpNtuuy098sgjaeedd04//OEPU0op3XXXXal///7pnnvuSffdd18aMGBA+u1vf/uW3LauWLp0adpmm23S/Pnz0wsvvFD6r6WlJTeb66+/Pu24445pxYoVpe3XrFmTUkrpqquuSo2Njekvf/lL+v3vf5/69euX/vSnP210XU/TlVxeeeWVNGzYsPTlL385Pfroo+ld73pX+sY3vtFumx//+Mdp77337rBs+PDh6aGHHkp33HFH2mabbdKjjz66OW9el3Ull3KPpXKZVdJ4Sen155KBAwemK6+8Mi1fvjydfPLJaezYsSmllNasWZNeffXVDudpey75xS9+kZYuXZoOP/zwdPLJJ6eUUrr33ntTXV1dWrx4cbusNzxf1nNQT9OVXFJK6X3ve1869dRT0xNPPJEOPPDA9JnPfKbd+okTJ6ZPfvKT7ZZV2ph5o/r6+nTXXXellPLnpnL3/f/7f/8vNTQ0pAcffDAtXLgwDRs2LP3oRz9KKVXe3LShTcll7ty5qX///mnu3LnpscceS3vttVc6//zzU0op3XHHHalv377pN7/5TXriiSfSoYcemsaPH59SSmn27NlpwIAB6d57700PPPBAGjp0aLr55pvfstv2Zm1KNm2yHjMbuvXWW9NOO+1UOl1Jc9Ozzz6b+vXrl6655pr05JNPpsMOO6z0nJH3PLN69epUX1+frrrqqrRkyZI0evTo9NWvfjWlVH7eqrQx05VsNvTCCy+kiEhLlixJKZW//ZU0N3Ull7/97W+puro63XTTTempp55Kn/zkJ9MBBxyQUio/niptzKSU0nHHHZeOPPLI9MQTT6SPf/zj6UMf+lBKaePPM3fddVeqr69vt+zZZ59NtbW16aqrrkoLFy5MgwYNKt3+SnqeSanzuWzKfZ+VWSUez3Q2m3Jzc5useasSj2duvPHGNHTo0HbLuvI6+6KLLkr77bdfev7550vrXnzxxZRSSueee27ad9990+OPP55uueWWtM0226Tly5dv/hv3JnUmm3KPp3LjqZLmpjadyaXcMUu54+NKmpuee+651L9//3TFFVek5cuXpy984Qtpp512Sq+++mrunF3utXRX3+vribqSTUobf62dUkoLFy5MG76NXWlz02677ZbOP//89Mgjj6R3vvOd6frrr08pde21QZHeA36rKEB6gDcWIG88vaFrr702bbfddmnYsGHppptuardu5syZadiwYalfv37prLPOSi0tLaV1M2bMSIMGDUoDBw5MF1100ea4Gd3mJz/5SYqIDv8tWbIkN5tTTz21w/Ztb5q89tpr6fOf/3zadttt084775yuvfba0vnKretpupJLSin98Y9/TLvttluqq6tLEyZMSOvXr2+3PqsAaW1tTV/4whdSXV1dGjJkSI+eYLuaS7nHUl5mlTRe2tx1111pr732Sv369Uvjxo1LS5cuTSmltNNOO6Vbb7018zyzZs1KI0aMSHV1den4449Pq1atSimlNG3atMys25R7DuppupLLY489lvbbb7/Ut2/fdNRRR6V//vOf7dY3NDSkmTNntltWiWNmQxu+mV3u8ZR337e2tqavfOUrabvttkvbbbdd+spXvpJaW1tL56ukuWlDm5rLd77zndTQ0JC23XbbNGnSpPTyyy+X1s2YMSM1NDSkurq6dNxxx6XnnnuutO6SSy5J22+/fRo6dGi65JJLNudN6Xabmk1K2Y+ZDb2xAKmkuSmllG6//fa06667pgEDBqSTTz659KZQueeZOXPmpBEjRqQ+ffqkE044Ia1bt660rty8VWljpivZtHljAZJS+dtfSXNTV3KZOXNmGjFiROrbt286/PDD0xNPPFFaV248VdqYefbZZ9Phhx+e+vTpkw488MDS/b+x55msN/NTSum//uu/0o477pi23XbbdM4557SbtyrpeaYruWzsvs/KrBKPZ7qSTbm5OaX8eavSjmcmTJiQTj/99HbLuvI6+5BDDumw7uCDD04ppfTiiy+mCRMmpPr6+jRy5Mh0++23b+Zb1T06k01K5R9P5cZTJc1NKXU+l3LHLOWOjytpbrrjjjvSHnvskWpra9OYMWPSAw88kFLKn7M39lq6q+/19USdzSaljb/WTqljAVJpc9P9999fep/p3HPPLS3v6muDorwH/FapSmmDX0YBAAAAAAAoAL8BAgAAAAAAFI4CBAAAAAAAKBwFCAAAAAAAUDgKEAAAAAAAoHAUIAAAAAAAQOEoQAAAAAAAgMJRgAAAAAAAAIWjAAEAAAAAAApHAQIAAAAAABSOAgQAAAAAACic/w/urDrHJ0/5KwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 2000x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Rating 分布情况\n",
    "plt.figure(figsize=(20,8), dpi=100)\n",
    "\n",
    "plt.hist(df[\"Rating\"].values, bins = 20)\n",
    "\n",
    "# 求出最大最小值\n",
    "MAX = df[\"Rating\"].max()\n",
    "MIN = df[\"Rating\"].min()\n",
    "\n",
    "# 生成刻度表\n",
    "t1 = np.linspace(MIN, MAX, num = 21)\n",
    "\n",
    "# 修改刻度\n",
    "plt.xticks(t1)\n",
    "\n",
    "plt.grid()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "9ea7bf23",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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mc07lMb/b7zCo7XbtjR9+vSYNm1a0/L69eujpqYmxo8f3+aB7Gzq6+tjwYIFceKJJ0ZlZWV3D6fHkEs52RSTS7nGbC7/Q6+o21Q8b++Mqnql+MLhm+RSQDbF5FJMLuUas/Hc1Jzn7HKyKSaXcrIpJpdysikml3KyKSaXYnIpJ5tijZ8c1R7bXIDstddesXr16qblNWvWRETEsGHDCm+rrKyMIUOGFG6rqqoqqqqqWqyvrKz0Cy4hm2JyKSebYnIpV7epIuoavDm5JbmUk00xuRSTSznPTcXkUk42xeRSTjbF5FJONsXkUk42xeRSTC7lZNNcR7Lo0JegFxk3blwsXry4afnee++N2tra2HvvvQtvO/roo0uvAAEAAAAAAOgM21yATJw4MVatWhU33HBDLF++PGbOnBmTJ0+OiIhJkybFnXfeGT//+c/jkUceidmzZzfdBgAAAAAA0FW2uQAZOHBg3HLLLTFr1qw4+OCDY7/99ovp06dHRMTIkSPjO9/5Tlx00UVxxBFHxEknnRRnn332Ng8aAAAAAACgNVv1HSCbf7F5RMT48ePj8ccfL7zv5MmTXfUBAAAAAABsV9t8BQgAAAAAAEBPowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACyowABAAAAAACy06e7BwAAALQ0asb8qGuo6O5h9BhVvVNcN6a7RwEAAOxIXAECAAAAAABkRwECAAAAAABkRwECAAAAAABkp9MKkD/96U9x5JFHxoABA2LChAmxYsWKiIh44IEH4tBDD42+ffvG+PHj44UXXuisXQIAAAAAABTqtALkn//5n+Pkk0+ORx99NGpra+Occ86JTZs2xWmnnRYnn3xyPP7449G3b9/45Cc/2Vm7BAAAAAAAKNSnMzayevXqeOKJJ+Lcc8+NYcOGxZQpU+KEE06I3/3ud/Hiiy/GjBkzok+fPnHFFVfEMcccExs2bIj+/ft3xq4BAAAAAABa6JQCZPDgwTFixIiYP39+nHXWWTF//vw49NBDY9GiRTFmzJjo0+fN3Rx66KHR0NAQDzzwQIwbN67Fdurq6qKurq5pef369RERUV9fH/X19Z0x1Gw05iGX5uRSTjbF5FKuMZOqXqmbR9KzNOYhl5ZkU0wuxeRSTjbFGvPwnN2S85liciknm2JyKSebYnIpJ5ticikml3KyKdaRPCpSSp3yyuqee+6J4447LlJKsdtuu8V9990XX/nKV2LNmjVx8803N91v2LBhcf3118eHPvShFtuYMWNGXHnllS3Wz507N/r169cZwwQAAAAAAHZQGzdujEmTJsW6deuiurq61ft2SgHy6quvxiGHHBIf+9jH4uSTT45vf/vb8dBDD8Xo0aPj73//e/z3f/93033f8pa3xOzZs+O0005rsZ2iK0Bqamri73//e5sHsrOpr6+PBQsWxIknnhiVlZXdPZweQy7lZFNMLuUas7n8D72iblNFdw+nx6jqleILh2+SSwHZFJNLMbmUk02xxlw8Z7fkfKaYXMrJpphcysmmmFzKyaaYXIrJpZxsiq1fvz6GDh3argKkUz4C61e/+lW8/vrrcdlll0VExMyZM6N///5x/PHHx9KlS5vu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Wl67dm2cfvrpMW3atPjLX/4Sy5cvj6uvvrozdwkAAAAAANBCpxYgX/nKV2LPPfeMgQMHRkTEz372sxgxYkRccMEFUVtbG5deemncdNNNnblLAAAAAACAFjqtAHn66afjy1/+cnzjG99oWrdo0aI46qijmpbHjh0bK1asiJUrV3bWbgEAAAAAAFro01kb+sQnPhHnn39+HHTQQU3rnnvuuRg9enTT8u677x4REc8//3zU1NS02EZdXV3U1dU1La9fvz4i3vxorfr6+s4aahYa85BLc3IpJ5tijXlU9UrdPJKepzET2TQnl3KyKSaXYnIpJ5ticinXmInzvOac/5aTTTG5lJNNMbmUk00xuRSTSznZFOtIHhUppW1+BXH77bfHBRdcEH/961+jX79+MWjQoLjtttviP//zP2PUqFHx5S9/OSIiXn311ejXr1/84Q9/iMMOO6zFdmbMmBFXXnlli/Vz586Nfv36beswAQAAAACAHdjGjRtj0qRJsW7duqiurm71vp1SgJx99tkxd+7c6Nu3b0RErFu3Lvr37x977bVXvOc974nvfe97EfHmx2TV1NTE008/HXvvvXeL7RRdAVJTUxN///vf2zyQnU19fX0sWLAgTjzxxKisrOzu4fQYciknm2KNuVz+h15Rt6miu4fTo1T1SvGFwzfJZgtyKSebYnIpJpdysikml3KN2TjPa875bznZFJNLOdkUk0s52RSTSzG5lJNNsfXr18fQoUPbVYB0ykdgzZw5M6644oqm5UMOOSS+/e1vx+uvvx7XXHNN0/p77703amtrC8uPiIiqqqqoqqpqsb6ystIvuIRsismlnGyK1W2qiLoGb6YUkU0xuZSTTTG5FJNLOdkUk0s553nF5FJONsXkUk42xeRSTjbF5FJMLuVk01xHsuiUL0EfOnRo1NbWNv3Xq1evGDZsWEycODFWrVoVN9xwQyxfvjxmzpwZkydP7oxdAgAAAAAAlOqUAqTMwIED45ZbbolZs2bFwQcfHPvtt19Mnz69K3cJAAAAAADQOR+BtaW1a9c2/f/48ePj8ccf74rdAAAAAAAAFOrSK0AAAAAAAAC6gwIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADIjgIEAAAAAADITp/uHgAAAADbbtSM+VHXUNHdw+gxqnqnuG5Md48CAIDu5AoQAAAAAAAgOwoQAAAAAAAgOwoQAAAAAAAgOwoQAAAAAAAgOwoQAAAAAAAgOwoQAAAAAAAgOwoQAAAAAAAgOwoQAAAAAAAgO326ewAAAADQVUbNmB91DRXdPYwepap3iuvGdPcoAAC6nitAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7ChAAAAAAACA7PTpzI09+eSTcfbZZ8cDDzwQhx12WPzv//2/Y99994358+fHJZdcEs8880yccsopMWfOnOjXr19n7hoAAADogFEz5kddQ0V3D6PHqOqd4rox3T0KAKAzdeoVIFOnTo199tkn/vznP8fuu+8eF110UaxduzZOP/30mDZtWvzlL3+J5cuXx9VXX92ZuwUAAAAAAGim0wqQ119/PX7729/G9OnTY999941zzz037rrrrvjZz34WI0aMiAsuuCBqa2vj0ksvjZtuuqmzdgsAAAAAANBCp30EVn19fVx33XWx3377RUTEmjVrom/fvrFo0aI46qijmu43duzYWLFiRaxcuTJqamqa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r48PfehDze47Y8aMuPLKK7tyOAAAAAAAwA5u5cqVMWLEiFbvs12+BH3LjiWlFBUVLdu86dOnx7Rp05qWN23aFC+++GLsvvvuhfffma1fvz5qampi5cqVUV1d3d3D6THkUk42xeRSTjbF5FJONsXkUkwu5WRTTC7lZFNMLuVkU0wu5WRTTC7lZFNMLsXkUk42xVJK8fLLL8fw4cPbvG+XFyB77bVXLF26tGm5oaEh1q5dG8OGDWtx36qqqqiqqmq2btCgQV09xB1adXW1P/4Cciknm2JyKSebYnIpJ5ticikml3KyKSaXcrIpJpdysikml3KyKSaXcrIpJpdiciknm5YGDhzYrvv16uJxxLhx42LJkiXxxhtvRETEgw8+GH369Il3vvOdXb1rAAAAAABgJ9XlBcgxxxwTe+yxR1xxxRXx9NNPx1VXXRWnnnpq9OvXr6t3DQAAAAAA7KS6vADp1atX3HrrrfGLX/wiRo4cGa+99lrMmjWrq3ebvaqqqrjiiitafGTYzk4u5WRTTC7lZFNMLuVkU0wuxeRSTjbF5FJONsXkUk42xeRSTjbF5FJONsXkUkwu5WSz7SrSlt9QDgAAAAAAsIPr8itAAAAAAAAAtjcFCAAAAAAAkB0FCAAAAAAAkB0FCAAAAAAAkB0FSA9SX18f559/fgwYMCAOOuiguPfeeyMiYv369XHaaadF//79Y8yYMfHYY4+1a3szZ86MPffcM4YMGRJf/OIXu3LoXWb58uVRUVHR4r+IiPvvvz/e9a53RXV1dUycODFefPHFdm3zhz/8Yey3334xdOjQ+Pd///dIKXXlIXSZ1rL53e9+F4ccckhUV1fH6aefHi+99NJWbe+9731vFx9F1/jTn/4URx55ZAwYMCAmTJgQK1asaHb7woULo6KiIu688852be///J//EyNHjozBgwfH+eefH6+//noXjHr7WLx4cYwePTr69esXZ5xxRrz66qtNt61atSqOPfbYeOihh9q9vRtvvDFqampiwIABcckll0RDQ0MXjLrrFeXS2mOsLfPnz48DDzwwBg0aFFOmTInXXnuti4+gcxX9LcyfPz8OOOCA6N+/f5xxxhmxcePGpttuu+222H///WPgwIHxL//yL81uK3PnnXe2yHbKlCldcDSdp6O5fPOb34yampoYPHhwXH311e3ezze+8Y3Ye++9Y4899ojPfe5znXkIXaZs/vjb3/4WBx98cKxdu7bZ+meeeSaOP/746N+/f5xwwgnx/PPPt7mPlFJ86lOfioEDB8bw4cPje9/7XiceQdcoyqW185etnTuuvfbaGD58eOy1117xX//1X519GJ2uo7lszfPwjjjHRBRns2jRohg9enQMGDAgTjrppHjhhRda/NwPf/jDqKioiOXLl7drPzvaPNPaOUrZsT/44INx4IEHtnsfO+IcE9GxbH7wgx9s9fl+DvPMlsdeW1vbdFt7Hmdb2lFfP3U0m5///OcxcuTIpvP9TZs2tWs/O9prqKJcWnsvZmc5l4lomU3Rc+zmfzM76/lMW7ns7Ocz7Xmfamc8n2lrji17PdWaHN4P7nSJHuNLX/pSOvHEE9Pjjz+eZsyYkUaOHJlSSmnq1KnpzDPPTMuWLUvnnXdeOuGEE9rc1m9/+9tUXV2d7rrrrnTfffelwYMHp1/96lddfQidrqGhIb300ktN//3whz9Mw4YNSw0NDemAAw5Il112WVq2bFl697vfnS666KI2t7ds2bJUWVmZfvKTn6QHHnggDR48ON16663b4Ug6X1k269evT4MGDUo/+MEP0ooVK9Ipp5ySzj333Da315jN5tt8+eWXt8ORdL79998/ffGLX0zPPPNMmjp1avrHf/zHpttef/319I53vCNFRLrjjjva3NYTTzyR+vXrl375y1+mJ554Ih1xxBHpC1/4QheOvuvU19enmpqadPnll6cnnngivec970mXXnppSunNeSYiUkSkBx98sF3be/TRR9Ouu+6abrvttrR06dL01re+NX3729/uwiPoGmW5lD3G2tL4GPz617+eHn300bT//vunmTNnbocj6RxFfwsvvfRSqq6uTjfccENatmxZGjt2bPrMZz6TUkrp2WefTQMHDkzz589PTz75ZDrssMPSVVdd1eZ+7rjjjrT//vs3y3jDhg1deWjbpKO5/PWvf029e/dO/+///b903333pWHDhqV58+a1uZ+FCxemwYMHp9///vfpz3/+c9pvv/3SjTfe2JWHts3K5o/x48c3rX/ppZea/cz48ePTZZddlpYvX54+8IEPpI997GNt7mfOnDmppqYmPfzww+n2229Pu+66a1q6dGknH03nKcqltfOXrZ077rrrrtSvX7+0cOHC9Nvf/jb16dMnLVmypCsPbZt0NJetfR7e0eaYlIqzefXVV9OwYcPSD3/4w7Ry5cr0gQ98IJ1zzjnNfu6ll15Ke+65Z4qItGzZsjb3s6PNM62do5Qd+wEHHJAiIg0cOLDd+9nR5piUOp5NXV1ds8fE1KlT0xlnnNHmfnKYZ1JKKSLS0qVLm45/3bp1KaX2Pc6K7IivnzqazZo1a1L//v3Tt771rfTXv/41HXTQQWn27Nlt7mdHew1Vlktr78XsDOcyKRVnU19f3+zv/otf/GJ697vfnVLauc9nWstlZz+fac/7VDvj+Uxbc2xrr6fK5PJ+cGdTgPQg+++/f9OD4OWXX0633npreuWVV9KgQYPS6tWrU0opPffcc+l//ud/2tzWv/7rv6aPf/zjTcuXXHJJOvPMM7tk3NvTxz72sTRlypT0+OOPp4hIr7zySkoppW984xvpkEMOafPnv/Od76QjjjiiafnDH/5w+rd/+7cuG+/21JjNfffdl6qqqprWz507Nx188MFt/vyyZcvS8OHDu3KI28ULL7yQIiKtWrUqpZTS4sWLU79+/Zpuv/baa9Nxxx2XBg4c2K4C5JZbbklvf/vbm5a/9KUvpQ984AOdPu7t4c9//nOKiPTiiy+mlFKaN29eqqmpSSmltHr16rRs2bIOFSCf//znm2XxX//1X2ncuHGdPu6u1loum2t8jLVlwYIFac8992xa/vSnP50++MEPdt6Au1jR38KcOXOazSM/+clP0j777JNSSuk3v/lNmjp1atNtn/70p9v1Zsodd9yRjjrqqM4dfBfqaC7XX399s+elSy+9tF3Pw9ddd12aMGFC0/LUqVObPZ/3RGXzx6pVq9Jdd93V4oT9qaeeSnvssUeqr69PKaX05JNPpt/+9rdt7uc973lPuu6665qWTznllHT55Zd32nF0tqJcWjt/2dq547Of/Wz68Ic/3LR8xBFHpFmzZnXikXSujuaytc/DO9ock1JxNn/961/TKaec0nSfb3zjG01vpjS68MIL0z/90z+1+w2DHW2eae0cpezYV65cmW6++eYOFSA72hyT0tZls7mRI0emH/zgB23uJ4d5JqU33+Svq6trcf/2PM6K7IivnzqazS9+8YtUXV3dtDx79ux2ne/vaK+hinLZuHFj6XsxO8u5TErte514wgknpBkzZqSUdu7zmS1tnsvOfj7Tnvepdsbzmbbm2LLXU63J9f3gbeUjsHqI5557LpYtWxYLFy6MgQMHxrHHHhv/8A//EH/605+iuro6Zs2aFbvttlt89KMfjTFjxrS5vUWLFsVRRx3VtDx27NhYtGhRVx7CdvHLX/4yPvCBD0S/fv3iq1/9avTv3z8iItasWRN9+/Zt8+dHjx4d//Ef/9G03N6f2xE0ZvPWt741+vTpE7/73e+ioaEhFixYEIceemi7ttG7d+/4x3/8x+jXr19MnDgx1q1b17WD7gKDBw+OESNGxPz58yPizctvG4//6aefji9/+cvxjW98o93be8c73hHPPPNMPPLII/Haa6/FnXfe2e48e5rGj7tq/JsfOnRorFy5Ml555ZUYOnRos8tz26Nonrnnnnt2uI+Vay2XzTU+xtoyYsSIuPbaa5uWd7R5puhvoeh3vWLFili5cmUcf/zx8a1vfSsiIlavXh233357vPOd72zXvl555ZU47LDDYsCAAXHOOef06I9G6Ggur776arPf+9ChQ+Ovf/1rm/s55JBD4uGHH47nnnsu1q1bF/fcc0+Pn3PK5o9hw4bFiBEjWqxfvHhxHHjggXHuuefGbrvtFv/+7//e5rlNSinuueeeHercpiiX1s5ftnbuOPbYY+P888/v8M91l47msi3PwzvSHBNRnM1BBx0U//f//t+IiHj55ZfjtttuazbH3n///XHrrbfGdddd1+797GjzTNkc09qxjxgxIoYNG9bufeyIc0zE1mXT6PHHH48nnngi3ve+97W5nxzmmYiIXXfdNSZPnhx9+/aN97znPfHMM89ERNuPs9bsaK+fOprN1p7P7GivoYpy+eMf/1j6XszOci4TUf430+iVV16JhQsXNr1O2pnPZza3ZS47+/lMW+9T7aznM23NsWWvp1qT6/vB26x7+xcaPfDAA6l3795p0qRJadmyZelf/uVf0vHHH59++tOfpr59+6Z/+7d/S8uWLUvHHXdcuy7H7d+/f7r99tubln/5y1+m/v37d+UhdLkHH3ww9enTp0XruXbt2rTPPvuk66+/vkPbu++++9Iuu+yS/vjHP3biKLvHltnceuutqaKiIu2yyy5pv/32S3//+9/b3MayZcvSLrvskn7yk5+kv/3tb+nggw9O//Ef/9HFI+8aixcvTlVVVWmXXXZJQ4YMSX/7299SSimdeuqpTcfU3itAUnrzyoaISJWVlemII44o/NdRO4K1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zDFdM/jt4MUXX4x777232b9SOu+882K33XaL2267Laqqqtq1nY0bN8Ypp5wSF154YXz+85/vquFuV1tm07t372hoaGi6/Y033oiUUlRWVra6ncsuu6xZ475ixYoOfydET7Dl8aeUYtOmTXHllVfGo48+Gg899FA89NBDMWDAgPjud78bH/zgBzu0vTfeeCP69OnTZePvSq+88kq8733vi1deeSUGDBgQ9913Xxx99NFbvb2ieeboo4/e4f51QVu5FM0/rdm0aVOcdtppcfTRR8d3vvOdHS6PIkW/69ra2th7771jzpw58bnPfa7ptoqKiujdu3eb2zzjjDOa/aunHXHOaS2XxYsXxznnnBMDBw6MXXbZpd2Pt5zmnDIHHXRQPPXUU1FXVxcR7Tu3qaioiKOPPjqLc5uy85etnTtWrVoV//zP/xxf//rXY8qUKV006q5XlsvWPiZymGMi3nwD5dxzz21a3nyOvfnmm2Pp0qXx0EMPxV133RURbxb2hx9+eKvbzGGe2dpjL5PTHNOebH7961/HbrvtFmPHjm3XNnOYZ2bPnh3jx49vWt58TmjtcdaaXF4/tZbNE088ESeffHL0798/+vbtu1Odzxx00EGl78Xs7Ocyjf74xz/Gs88+GxMmTGhat7Ofz0QU57Kzn8+09j7Vznw+s7VzbGtyez+402zfT9yiNaeddlqaMGFCeuKJJ9KHPvSh9P73vz+llNJhhx2WpkyZkp544ol09NFHpwsvvDCl9Obn5L300kuFn7V4xx13pAEDBqS77ror3XfffWnQoEHp17/+9XY9ns40d+7cNHz48Kblu+++O1VXV6fHHnssvfTSS03/pdR6Ll/84hfTEUcckV588cWmn3n55Ze312F0iS2z+fOf/5wqKyvTzTffnJ566qn00Y9+NB111FFNt7/00kvpjTfeaLGdefPmpUGDBqW777473X///Wn48OHpxz/+8XY5hs70wgsvpAEDBqRZs2allStXpk996lNp3333bfGdBFt+B0hZLrfffnvq379/+tWvfpWeeOKJdNxxx6VJkyZ19WF0mQMPPDBdfvnlaenSpemtb31ruummm5rdHgWfYVqWzeOPP5523XXXdNttt6WlS5em/fbbL333u9/tyuF3mdZy2fIx1qgsl5tuuints88+adWqVU3zzLp167p0/F1h87+FtWvXpoEDB6bZs2enZcuWpTFjxqTPfe5zKaWU7rzzzjRgwIB05513pkcffTQdcsgh6fLLL08ptT4fz549O9XW1qY//vGP6be//W3abbfd0u9///vtdnxbq725rFixIu2yyy7pl7/8ZZo/f37q379/evLJJ1NKrefyzW9+Mw0fPjz9/ve/T3/+85/TqFGj0mc+85ntdnzbomj+KPrM2tdeey3tvffe6TOf+Ux65JFH0tve9rZ07bXXppRSqq+vT2vXri3c/ve///00YsSI9PDDD6fbb7897brrrs0+R7un2jyX1s5fWps7WsvlYx/7WDr11FObbW/Dhg3b49C2SXtzae15OMc5JqXm2TQ+1/70pz9Ny5cvTyeccEI688wzW/zMlp+ZneM8UzTHpNTy2BsVfQdIjnNMSh3PZurUqemjH/1os3W5zzN/+tOfUlVVVfqf//mf9Mgjj6RRo0Y1Pfe09TjL8fVTe7PZsGFD2n333dO3v/3ttGTJkjR48OB09913N20nt9dQWz6Wyt6L2dnOZVIqnme+9KUvpSOPPLLZup35fKZRUS47+/lMW+9TNdrZzmfammNTKn49tTO9H9xZFCA9yPPPP59OOOGE1Ldv33T00Uc3PeAfffTRdMQRR6T+/funk046qemLgtr6IpyZM2em3XffPQ0ePDh98Ytf3E5H0TUmT56czj333KblGTNmpIho8V9Krefy3ve+t8XPHHvssdvpKLrGltmklNKNN96YRo4cmfr3759OOOGE9MQTTzTdVvYCKaU3n6jf8pa3pOHDh6cvfelLXTnsLnX77benUaNGpX79+qWxY8em+++/v8V9tixAWstl5syZqaamJlVXV6fTTjstvfDCC1008q63ZMmSdOCBB6bq6up06aWXtri9KIfWsrnxxhvT3nvvnXbbbbd08cUXp4aGhi4YdddrLZeix1hK5blMmTKlxTyz7777dtHIu86Wxzd//vw0cuTI1Ldv3/SRj3yk2QuSr3/966mmpiYNGTIknX/++enVV19NKbU+H7/xxhvpE5/4RBoyZEjab7/90pw5c7r6kDpFR3KZM2dO2nPPPdPee++dbr755qb1beXy6U9/Or3lLW9JQ4YMSeeee+4O8eIvpfYXICmldM899zQ95iZPnpw2btyYUmr9S4s3bdqUPvWpT6Xq6uo0bNiwHaZw3TyX1s5fWps7Wsultra2xc+dddZZXX9g26i9uaRU/jyc4xyTUsvH0i233JJGjhyZqqur0+mnn57WrFnT4me2fMMgx3mmMwqQHOeYlDqeTU1NTbrxxhubrct9nknpzTef99lnn7THHnuk/+//+/+a/QOp1h5nOb5+6kg28+bNSzU1NWno0KHpK1/5Sqvb2dyO+Bpqy+Mpey8mpZ3rXCal4t/1Mccck77whS80W7czn880KsolJeczrb1P1WhnPJ9pbY5NqTiDnen94M5SkdJm34wCAAAAAACQAd8BAgAAAAAAZEcBAgAAAAAAZEcBAgAAAAAAZEcBAgAAAAAAZEcBAgAAAAAAZEcBAgAAAAAAZEcBAgAAAAAAZEcBAgAAAAAAZEcBAgAAAAAAZEcBAgAAAAAAZOf/B5s53IyAT9K9AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 2000x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Runtime 分布情况\n",
    "plt.figure(figsize=(20,8), dpi = 100)\n",
    "\n",
    "plt.hist(df[\"Runtime (Minutes)\"].values, bins = 20)\n",
    "\n",
    "# 求出最大最小值\n",
    "MAX = df[\"Runtime (Minutes)\"].max()\n",
    "MIN = df[\"Runtime (Minutes)\"].min()\n",
    "\n",
    "# 生成刻度列表\n",
    "t1 = np.linspace(MIN, MAX, num = 21)\n",
    "\n",
    "# 修改刻度\n",
    "plt.xticks(t1)\n",
    "\n",
    "plt.grid()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "beef6946",
   "metadata": {},
   "source": [
    "## 问题三"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "ba69e8f1",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 对于这一组电影数据，如果我们希望统计电影分类(genre)的情况，\n",
    "# 应该如何处理数据？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "ea5eee37",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['Action', 'Adventure', 'Animation', 'Biography', 'Comedy', 'Crime',\n",
       "       'Drama', 'Family', 'Fantasy', 'History', 'Horror', 'Music',\n",
       "       'Musical', 'Mystery', 'Romance', 'Sci-Fi', 'Sport', 'Thriller',\n",
       "       'War', 'Western'], dtype='<U9')"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 1、创建一个全为0的dataframe，列索引置为电影的分类，temp_d\n",
    "\n",
    "# 进行字符串分割\n",
    "temp_list = [i.split(\",\") for i in df[\"Genre\"]]\n",
    "\n",
    "# 获取电影的分类\n",
    "# 双重 for 循环\n",
    "genre_list = np.unique([i for j in temp_list for i in j])\n",
    "\n",
    "genre_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "618d5b00",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "20"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "genre_list.shape[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "510cb5a5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1000"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "a5c8953a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Action</th>\n",
       "      <th>Adventure</th>\n",
       "      <th>Animation</th>\n",
       "      <th>Biography</th>\n",
       "      <th>Comedy</th>\n",
       "      <th>Crime</th>\n",
       "      <th>Drama</th>\n",
       "      <th>Family</th>\n",
       "      <th>Fantasy</th>\n",
       "      <th>History</th>\n",
       "      <th>Horror</th>\n",
       "      <th>Music</th>\n",
       "      <th>Musical</th>\n",
       "      <th>Mystery</th>\n",
       "      <th>Romance</th>\n",
       "      <th>Sci-Fi</th>\n",
       "      <th>Sport</th>\n",
       "      <th>Thriller</th>\n",
       "      <th>War</th>\n",
       "      <th>Western</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>995</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>997</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>998</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1000 rows × 20 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Action  Adventure  Animation  Biography  Comedy  Crime  Drama  Family  \\\n",
       "0       0.0        0.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "1       0.0        0.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "2       0.0        0.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "3       0.0        0.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "4       0.0        0.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "..      ...        ...        ...        ...     ...    ...    ...     ...   \n",
       "995     0.0        0.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "996     0.0        0.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "997     0.0        0.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "998     0.0        0.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "999     0.0        0.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "\n",
       "     Fantasy  History  Horror  Music  Musical  Mystery  Romance  Sci-Fi  \\\n",
       "0        0.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "1        0.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "2        0.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "3        0.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "4        0.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "..       ...      ...     ...    ...      ...      ...      ...     ...   \n",
       "995      0.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "996      0.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "997      0.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "998      0.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "999      0.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "\n",
       "     Sport  Thriller  War  Western  \n",
       "0      0.0       0.0  0.0      0.0  \n",
       "1      0.0       0.0  0.0      0.0  \n",
       "2      0.0       0.0  0.0      0.0  \n",
       "3      0.0       0.0  0.0      0.0  \n",
       "4      0.0       0.0  0.0      0.0  \n",
       "..     ...       ...  ...      ...  \n",
       "995    0.0       0.0  0.0      0.0  \n",
       "996    0.0       0.0  0.0      0.0  \n",
       "997    0.0       0.0  0.0      0.0  \n",
       "998    0.0       0.0  0.0      0.0  \n",
       "999    0.0       0.0  0.0      0.0  \n",
       "\n",
       "[1000 rows x 20 columns]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 创建一个全为 0 的 df\n",
    "genre_zero =  pd.DataFrame(np.zeros((df.shape[0], genre_list.shape[0])), columns=genre_list)\n",
    "\n",
    "genre_zero"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "805aa920",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Action</th>\n",
       "      <th>Adventure</th>\n",
       "      <th>Animation</th>\n",
       "      <th>Biography</th>\n",
       "      <th>Comedy</th>\n",
       "      <th>Crime</th>\n",
       "      <th>Drama</th>\n",
       "      <th>Family</th>\n",
       "      <th>Fantasy</th>\n",
       "      <th>History</th>\n",
       "      <th>Horror</th>\n",
       "      <th>Music</th>\n",
       "      <th>Musical</th>\n",
       "      <th>Mystery</th>\n",
       "      <th>Romance</th>\n",
       "      <th>Sci-Fi</th>\n",
       "      <th>Sport</th>\n",
       "      <th>Thriller</th>\n",
       "      <th>War</th>\n",
       "      <th>Western</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>995</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>997</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>998</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1000 rows × 20 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Action  Adventure  Animation  Biography  Comedy  Crime  Drama  Family  \\\n",
       "0       1.0        1.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "1       0.0        1.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "2       0.0        0.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "3       0.0        0.0        1.0        0.0     1.0    0.0    0.0     1.0   \n",
       "4       1.0        1.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "..      ...        ...        ...        ...     ...    ...    ...     ...   \n",
       "995     0.0        0.0        0.0        0.0     0.0    1.0    1.0     0.0   \n",
       "996     0.0        0.0        0.0        0.0     0.0    0.0    0.0     0.0   \n",
       "997     0.0        0.0        0.0        0.0     0.0    0.0    1.0     0.0   \n",
       "998     0.0        1.0        0.0        0.0     1.0    0.0    0.0     0.0   \n",
       "999     0.0        0.0        0.0        0.0     1.0    0.0    0.0     1.0   \n",
       "\n",
       "     Fantasy  History  Horror  Music  Musical  Mystery  Romance  Sci-Fi  \\\n",
       "0        0.0      0.0     0.0    0.0      0.0      0.0      0.0     1.0   \n",
       "1        0.0      0.0     0.0    0.0      0.0      1.0      0.0     1.0   \n",
       "2        0.0      0.0     1.0    0.0      0.0      0.0      0.0     0.0   \n",
       "3        0.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "4        1.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "..       ...      ...     ...    ...      ...      ...      ...     ...   \n",
       "995      0.0      0.0     0.0    0.0      0.0      1.0      0.0     0.0   \n",
       "996      0.0      0.0     1.0    0.0      0.0      0.0      0.0     0.0   \n",
       "997      0.0      0.0     0.0    1.0      0.0      0.0      1.0     0.0   \n",
       "998      0.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "999      1.0      0.0     0.0    0.0      0.0      0.0      0.0     0.0   \n",
       "\n",
       "     Sport  Thriller  War  Western  \n",
       "0      0.0       0.0  0.0      0.0  \n",
       "1      0.0       0.0  0.0      0.0  \n",
       "2      0.0       1.0  0.0      0.0  \n",
       "3      0.0       0.0  0.0      0.0  \n",
       "4      0.0       0.0  0.0      0.0  \n",
       "..     ...       ...  ...      ...  \n",
       "995    0.0       0.0  0.0      0.0  \n",
       "996    0.0       0.0  0.0      0.0  \n",
       "997    0.0       0.0  0.0      0.0  \n",
       "998    0.0       0.0  0.0      0.0  \n",
       "999    0.0       0.0  0.0      0.0  \n",
       "\n",
       "[1000 rows x 20 columns]"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 2、遍历每一部电影，temp_df中把分类出现的列的值置为1\n",
    "\n",
    "for i in range(1000):\n",
    "    genre_zero.loc[i, temp_list[i]]=1\n",
    "# print(temp_df.sum().sort_values())\n",
    "genre_zero"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "b7add968",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: >"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABlUAAAMCCAYAAADwI0DLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAADHrElEQVR4nOzdeZzVZd0//tcZhm2UGQUVBEEttSw03JfMpYwSb03cFVK0lbT0zr7dLrm2QN733eJWmkqWmYiYaxql3maa5IKi3qm4oLhvOIDAwMD5/cE958fI4mcm4AzyfD4e58HhXNd15n2uOXCW1+e6PqVyuVwOAAAAAAAAy1VT7QIAAAAAAABWB0IVAAAAAACAAoQqAAAAAAAABQhVAAAAAAAAChCqAAAAAAAAFCBUAQAAAAAAKECoAgAAAAAAUEBttQtY1RYuXJiXX345PXr0SKlUqnY5AAAAAABAFZXL5cycOTN9+/ZNTc3y16KscaHKyy+/nP79+1e7DAAAAAAAoAOZNm1aNtpoo+X2WeNClR49eiRZNDn19fVVrgYAAAAAAKimGTNmpH///pX8YHnWuFClZcuv+vp6oQoAAAAAAJAkhU4Z4kT1AAAAAAAABQhVAAAAAAAAChCqAAAAAAAAFCBUAQAAAAAAKECoAgAAAAAAUIBQBQAAAAAAoAChCgAAAAAAQAFCFQAAAAAAgAKEKgAAAAAAAAUIVQAAAAAAAAoQqgAAAAAAABQgVAEAAAAAAChAqAIAAAAAAFCAUAUAAAAAAKAAoQoAAAAAAEABQhUAAAAAAIAChCoAAAAAAAAFCFUAAAAAAAAKEKoAAAAAAAAUIFQBAAAAAAAoQKgCAAAAAABQgFAFAAAAAACgAKEKAAAAAABAAUIVAAAAAACAAoQqAAAAAAAABQhVAAAAAAAAChCqAAAAAAAAFFBb7QI+CErVLmA5ytUuAAAAAAAAPiCsVAEAAAAAAChAqAIAAAAAAFCAUAUAAAAAAKAAoQoAAAAAAEABQhUAAAAAAIAC2hyq7LnnnimVSsu9bLLJJkuMW7hwYS666KLssMMOqa+vT69evbLnnntm/Pjxy/15c+fOzahRo7LVVltlrbXWSu/evTNkyJDccccdbS0dAAAAAACg3WrbO7BUKqWmZumZTG1t67tdsGBBDjzwwNx4442tbr/rrrty11135eSTT86oUaOWuJ9Zs2Zl7733zsSJEyu3zZ49O7feemv+9Kc/5YILLsjIkSPb+xAAAAAAAAAKa/f2XyNHjkxzc/NSL08//XSrvueee24lUDnnnHPS2NiYV199Ncccc0ySZPTo0ZkwYcISP+Okk07KxIkTU1tbm4svvjizZ8/Oc889l3333TcLFy7MiSeemMcee6y9DwEAAAAAAKCwdocq66+/fqF+s2bNyo9//OMkyTHHHJPTTz899fX16d27dy677LJss802SZKzzz671bipU6fmsssuS5Kcfvrp+epXv5ru3btnk002yTXXXJO+fftm3rx5S13hAgAAAAAAsKKt9FBl3LhxaWxsTJJ8+9vfbtVWKpXyjW98I0ly77335qmnnqq0jRkzJgsWLEjnzp1z/PHHtxpXV1dXWeVy7bXXZubMme19GAAAAAAAAIW0O1RZb731CvW79dZbkyT9+/fPwIEDl2gfPHhw5fptt922xLidd945PXv2XOa4efPm5c477yxeOAAAAAAAQDu0O1Tp2rVrTjrppGyyySbp2rVrNtxww3z961/PG2+80arfAw88kCQZNGjQUu9nwIABaWhoSJJMmjQpSdLc3JyHH354ueO23nrryvWWcQAAAAAAACtLbXsHfvWrX20VoLz66qu5+OKL85e//CX33ntvNthgg8ybNy/PP/98kkUrVZalX79+aWxsrJzgfurUqZk/f/5yx62zzjqpq6vL7NmzK+OWpqmpKU1NTZW/z5gxo/iDBAAAAAAA+D/tXqnS2NiYn/3sZ3n77bfz7rvvVk40/8wzz+T//b//V+mzcOHCJEl9ff0y76tHjx5JkunTp7f6s63jlmbUqFFpaGioXJYX7gAAAAAAACxLm0OVhoaG9OrVK7/85S9zwgknZN11101dXV3OOOOMynlOrr766sycOTNz586tjOvSpcsy77OlraV/e8ctzSmnnJLGxsbKZdq0aQUeJQAAAAAAQGtt3v7rhhtuWGbb0KFDM2HChMybNy8PPfRQqxPTL74F13u1tNXV1bX6s63jlqZr167p2rXrMtsBAAAAAACKaPf2X0uzySabVK6/+uqraWhoSG3totzmnXfeWea4lvOc9OzZM0nSq1evSltbxgEAAAAAAKwsKzRUaQlQkqRcLqe2tjabbrppkuSFF15Y5rgXX3wxSbL55psnSQYMGJBu3botd9ybb75Z2farZRwAAAAAAMDK0qZQ5bLLLsvJJ5+ciy66aKnti58wfr311kuS7LjjjkmShx9+eKljnn322cyaNStJsv322y8qqqYm22233XLHTZ48uXK9ZRwAAAAAAMDK0qZQ5U9/+lN+/OMfZ/To0Uttf+SRRyrXBw0alCTZZ599kiSvvPJKJk2atMSYCRMmVK63nOh+8XH3339/3njjjWWO6969e3bfffe2PAwAAAAAAIA2a1OosuuuuyZJpk2blr/97W+t2pqamvK73/0uSbLnnntWVqoceOCBlXOe/OQnP2k1ZuHChZVVL3vuuWdlq7AkGTFiRGpra9Pc3Jzzzjuv1bh33303Y8aMSZIcdthh6d69e1seBgAAAAAAQJu1KVQ56qijsu666yZJjjzyyEyYMCFz5szJ888/n0MPPTRTp05NTU1NzjnnnMqY7t2757TTTkuSXHnllTnrrLMyY8aMvPbaazn22GPz6KOPplQq5cwzz2z1s/r165eRI0cmSUaPHp1f/vKXmTNnTqZOnZqDDz44r7/+erp27ZqTTz75X5oAAAAAAACAIkrlcrnclgF//vOfc8ABB2T27NlL3lmplAsuuCDf+MY3Wt2+cOHCHHLIIbnuuuuWep+nn356qyCmxezZs/PZz34299577xJtNTU1ufjii/PlL3+5LeVnxowZaWhoSGNjY+rr69s0dllKK+ReVo42/XIBAAAAAGAN05bcoE0rVZLks5/9bB566KEcddRR2XDDDdO5c+f07t07Bx98cO67774lApVkUQAybty4/OIXv8h2222XtddeO+uuu2722GOPXHfddUsNVJKkrq4ud9xxR0aPHp2BAwemrq4u66+/foYMGZLbb7+9zYEKAAAAAABAe7V5pcrqzkoVAAAAAACgxUpdqQIAAAAAALAmEqoAAAAAAAAUIFQBAAAAAAAoQKgCAAAAAABQgFAFAAAAAACgAKEKAAAAAABAAUIVAAAAAACAAoQqAAAAAAAABQhVAAAAAAAAChCqAAAAAAAAFCBUAQAAAAAAKECoAgAAAAAAUIBQBQAAAAAAoAChCgAAAAAAQAFCFQAAAAAAgAKEKgAAAAAAAAUIVQAAAAAAAAoQqgAAAAAAABQgVAEAAAAAAChAqAIAAAAAAFCAUAUAAAAAAKAAoQoAAAAAAEABQhUAAAAAAIAChCoAAAAAAAAFCFUAAAAAAAAKEKoAAAAAAAAUIFQBAAAAAAAoQKgCAAAAAABQgFAFAAAAAACgAKEKAAAAAABAAUIVAAAAAACAAoQqAAAAAAAABQhVAAAAAAAAChCqAAAAAAAAFCBUAQAAAAAAKECoAgAAAAAAUIBQBQAAAAAAoAChCgAAAAAAQAFCFQAAAAAAgAKEKgAAAAAAAAUIVQAAAAAAAAoQqgAAAAAAABQgVAEAAAAAAChAqAIAAAAAAFCAUAUAAAAAAKAAoQoAAAAAAEABQhUAAAAAAIAChCoAAAAAAAAFCFUAAAAAAAAKEKoAAAAAAAAUIFQBAAAAAAAoQKgCAAAAAABQgFAFAAAAAACgAKEKAAAAAABAAUIVAAAAAACAAoQqAAAAAAAABQhVAAAAAAAAChCqAAAAAAAAFCBUAQAAAAAAKECoAgAAAAAAUIBQBQAAAAAAoAChCgAAAAAAQAFCFQAAAAAAgAKEKgAAAAAAAAUIVQAAAAAAAAoQqgAAAAAAABQgVAEAAAAAAChAqAIAAAAAAFCAUAUAAAAAAKAAoQoAAAAAAEABQhUAAAAAAIAChCoAAAAAAAAFCFUAAAAAAAAKEKoAAAAAAAAUIFQBAAAAAAAoQKgCAAAAAABQgFAFAAAAAACgAKEKAAAAAABAAUIVAAAAAACAAoQqAAAAAAAABQhVAAAAAAAAChCqAAAAAAAAFCBUAQAAAAAAKECoAgAAAAAAUIBQBQAAAAAAoAChCgAAAAAAQAFCFQAAAAAAgAKEKgAAAAAAAAUIVQAAAAAAAAoQqgAAAAAAABQgVAEAAAAAAChAqAIAAAAAAFCAUAUAAAAAAKAAoQoAAAAAAEABKyxUefjhh1NbW5tSqZQRI0Ystc/cuXMzatSobLXVVllrrbXSu3fvDBkyJHfcccdy73v69Ok55ZRTssUWW6R79+7p27dvDj300Dz00EMrqnwAAAAAAIDlKpXL5fK/eiflcjmf/OQn8/e//z1JcvTRR+fXv/51qz6zZs3K3nvvnYkTJy4xvqamJhdccEFGjhy5RNtLL72UvfbaK1OmTFmirWvXrrnmmmuy//77F651xowZaWhoSGNjY+rr6wuPW57SCrmXleNf/uUCAAAAAMAHWFtygxWyUmXMmDGVQGVZTjrppEycODG1tbW5+OKLM3v27Dz33HPZd999s3Dhwpx44ol57LHHlhh37LHHZsqUKenRo0euu+66zJ07N48//nh23HHHNDU1ZcSIEXnttddWxMMAAAAAAABYpn85VJk+fXr+4z/+Y7l9pk6dmssuuyxJcvrpp+erX/1qunfvnk022STXXHNN+vbtm3nz5mXUqFGtxt19992ZMGFCkuSCCy7I0KFD07Vr13zsYx/L9ddfn7q6ukyfPj3nnXfev/owAAAAAAAAlutfDlVOPfXUvPnmm9l5550zYMCApfYZM2ZMFixYkM6dO+f4449v1VZXV5djjjkmSXLttddm5syZlbZLL700SdK7d+8MGzas1bgNN9wwQ4cOTZIlthoDAAAAAABY0f6lUOWBBx7IJZdckk6dOuWiiy5KqbT0s4vceuutSZKdd945PXv2XKJ98ODBSZJ58+blzjvvTLLoPC233XZbpb1Tp07LHPfyyy9n8uTJ/8pDAQAAAAAAWK52hyoLFy7MN77xjSxcuDAjR47MNttss9R+zc3Nefjhh5MkgwYNWmqfrbfeunJ90qRJSZJp06bl9ddfb/M4AAAAAACAlaHdocqvfvWr3H///dlggw3ygx/8YJn9pk6dmvnz5ydJ+vfvv9Q+66yzTurq6pIkTz/9dJLkqaeeqrQva1y/fv0q11vGAQAAAAAArAy17Rn05ptv5tRTT02S/Od//mcaGhqW2Xf69OmV6/X19cvs16NHj8yePbvSv8i4Hj16LPXnLK6pqSlNTU2Vv8+YMWOZNQAAAAAAACxLu1aqnHzyyXn77bez22675aijjlpu37lz51aud+nSZZn9Wtpa+hcZt/jti/df3KhRo9LQ0FC5LGvVCwAAAAAAwPK0OVS57777cvnll6e2tjYXXXTR+/Zv2dYrSasVI+/V0tbSv8i4xW9fvP/iTjnllDQ2NlYu06ZNe9+aAQAAAAAA3qtN238tXLgwxx13XMrlco4//vhstdVW7zumV69elevvvPPOMvu1bMvVs2fPwuMW38qrZdx7de3aNV27dn3fOgEAAAAAAJanTStVpk2bloceeihJct5556W2trbV5fnnn0+S/OY3v0ltbW0222yzDBgwIN26dUuSvPDCC0u93zfffLOyfdfmm2+eJNliiy0q7csat/iqk5ZxAAAAAAAAK0ObQpVyuVy5vnDhwixYsKDVZfF+CxYsSHNzc2pqarLddtslSR5++OGl3u/kyZMr17fffvsk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mz17djbffPO8/PLLOfLII/O73/2u8AO2UgUAAAAAAGix0laq/POf/8xLL72UJNl3331btZVKpWy99dZJkmnTplVuHzduXBobG5Mk3/72t5cY841vfCNJcu+99+app56qtI0ZMyYLFixI586dc/zxx7caV1dXV1nlcu2112bmzJlteRgAAAAAAABt1qZQZe21187555+f888/P5tvvvkS7W+99VaSpGfPnpXbbr311iRJ//79M3DgwCXGDB48uHL9tttuW2Lczjvv3Or+3jtu3rx5ufPOO9vyMAAAAAAAANqsti2dBwwYsMSqkRavvfZa7r///iTJdtttV7n9gQceSJIMGjRomffZsqxm0qRJSZLm5uY8/PDDyx3XsiomSSZNmpT999+/LQ+FKrNlGgAAAAAAq5s2n6j+vWbNmpW77747++23X2bOnJl11lknJ5xwQpJFq0ief/75JItWqixLv379kiRPP/10kkXnU5k/f/5yx62zzjqpq6trNQ4AAAAAAGBladNKlaVZf/31M3fu3CTJ3nvvnf/+7/+ubA3W2NiYhQsXJslyT+7So0ePJMn06dNb/Vlk3OzZs1v1f6+mpqY0NTVV/j5jxoz3e0gAAAAAAABL+JdXqpTL//9mSc8991xlu68klbAlSbp06bLM+2hpa+nf3nFLM2rUqDQ0NFQuy1sxAwAAAAAAsCz/cqjS2NiYxx57LF//+tfzzDPP5Etf+lIuuuiiJKlsz5Wk1WqR92ppa+nf3nFLc8opp6SxsbFymTZtWoFHBQAAAAAA0Nq/HKp07do1H//4x/OLX/win/vc55Ikp59+embNmpWGhobU1i7aYeydd95Z5n20bMnVs2fPJEmvXr0qbW0Zt6z66uvrW10AAAAAAADa6l8OVRZ3+OGHJ0nefvvtTJo0KbW1tdl0002TJC+88MIyx7344otJUjkXy4ABA9KtW7fljnvzzTcr2361jAMAAAAAAFhZ2hSq7LPPPimVStl1112X2t6vX7/K9ZdeeilJsuOOOyZJHn744aWOefbZZzNr1qwkyfbbb7+oqJqabLfddssdN3ny5Mr1lnEAAAAAAAArS5tClT59+iRZ9uqR119/vXJ93XXXTbIoiEmSV155JZMmTVpizIQJEyrXBw8eXLneMu7+++/PG2+8scxx3bt3z+67796WhwEAAAAAANBmbQpVPvWp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SS644IIMHTo0Xbt2zcc+9rFcf/31qaury/Tp03Peeee1+llXX311HnvssSTJVVddlb322itdunTJTjvtlGuuuSalUinPPPNMrrzyyvY9egAAAAAAgILaHKo8/vjjef3115Mkhx56aKu2Hj16ZJdddkmSPPjgg5XbL7300iRJ7969M2zYsFZjNtxww8oKl1//+tet2lrGbbfddtljjz1atW2zzTbZddddkyxaGQMAAAAAALAytTlUefbZZyvXN9tssyXaGxoakiw6KX2SlMvl3HbbbUmSwYMHp1OnTkuMGTx4cJLk5ZdfzuTJk5MkjY2Nuffee5MkQ4YMWWotLeP+8Y9/VH4eAAAAAADAylDb1gEDBgzISSedlCTp27fvEu1Tp05NkvTq1StJMm3atMrKlkGDBi31PrfeeuvK9UmTJmXrrbfOI488kubm5kLjFixYkMmTJy+xmgUAAAAAAGBFaXOosu2222bbbbddatuzzz6b+++/P0nyqU99Kkny1FNPVdr79++/1HH9+vWrXH/66afbPU6oAgAAAAAArCxtDlWW54QTTki5XE6pVMq3v/3tJGm1LVfLSezfq0ePHpXrLf3bO+69mpqa0tTUVPn7jBkz3u9hAAAAAAAALKHN51RZljPOOCM333xzkuR73/te5YT1c+fOrfTp0qXLUscufntL//aOe69Ro0aloaGhclnWqhcAAAAAAIDlWSGhyplnnpnvf//7SZIvfvGLOeeccyptdXV1leuLrxhZ3OK3t/Rv77j3OuWUU9LY2Fi5TJs27f0eDgAAAAAAwBL+pe2/yuVyvvnNb+bCCy9Mkhx99NG57LLLWvVpOWF9krzzzjtLvZ/Ft+Tq2bPnvzTuvbp27ZquXbsu+0EAAAAAAAAU8C+tVPna175WCVSOP/74jBkzJp06dWrVZ4sttqhcf+GFF5Z6P4uvHtl8883/pXEAAAAAAAArQ7tDle9973v51a9+lSQ566yzcv7556dUKi3Rr2/fvunXr1+S5OGHH17qfU2ePLlyffvtt0+SfOITn6icM+X9xnXu3Dlbb711ux4HAAAAAABAEe0KVW6//fb88Ic/TJKcc845OfPMM5fbf5999kmSTJgwIc3NzUu0T5gwIUmy8cYb5yMf+UiSZK211sruu++eJLnllluWer8t43bdddf06NGjHY8EgKUpdeALAAAAAFRL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vXv3apez2vjxj3+cYcOGZaONNqp2KauNmpqa1NfX56CDDsqwYcPy6U9/utolrRZGjhyZL37xi9l1112rXcpq4ze/+U2OOeaYJCn0OTRJFi5cuDJLWi14rq08559/fu68887st99+lecmiz5PXXnllTn44IPzyU9+Mkny17/+Nfvvv3922WWXfPe7381ee+1V5Sqr70c/+lGam5tzxBFHZPPNN692OauNV155JZ///Ofz2GOPJXn/1wPfSX6wCVWqrKmpKZdffnnuvPPOvP3220t947VgwYJMmTIlr7/++hp/tMv++++fm2++OaVSKQcffHB222231NfXL3fM0UcfvYqq67hqampSKpWSJP3798/w4cMzbNiwbLnlllWurOOaN29ePvvZz+Zvf/tbqxfK2trazJs3L4899lg+8YlPpFwup2fPnnnsscfSp0+fKlbcMWy11VaZPXt2Lr/88uyxxx7VLme18fTTT+eoo47KxIkTkyx6c9byXGsJ8GpqavLzn/88xx13XJWr7TgEn6wK06ZNS7lczgYbbOBo+IJa3nestdZaGTp0aIYPH56999678l6EpaupqUlNTU322GOPDB8+PAcffHB69OhR7bI6tG7dumXevHmV51a/fv1y5JFHZvjw4Rk4cGCVq+u4Wv6NbrLJJhk+fHiGDx/uS7X3sfXWW+exxx7Lhz70oZx//vnZbbfd/PsswHOt7T796U+ntrY2EyZMWG6/P//5z/nc5z6XbbfdNg888MAqqq5j+8lPfpLvfve7KZfL+e1vf5sjjzwySXLXXXdlr732qrxW/PSnP823vvWtapZadRtvvHFefPHFTJgwIZ/5zGeqXc5qY/jw4bnqqquSJDvssEOh7yTPPPPMVVEa1VCmambNmlXedtttyzU1NeVSqVQulUqtrrf8veW2Tp06VbvkqltnnXXKNTU15QsuuKDapaxWLr744vJnP/vZcufOnVs9r7bbbrvyz372s/Jrr71W7RI7nHPPPbdcKpXKa621VvnHP/5x+YknniiXSqVy586dK32ee+658ic+8YlyTU1N+d///d+rWG3HseWWW5ZramrKf/rTn6pdymrj1VdfLfft27fyf32fPn1aPdemTp1a3nzzzculUqlcW1tbfvDBB6tcccfQ1NRU3n333Zd43WyZt0cffbTS1qtXr/Irr7xS5YpZXfXq1avcqVOn8oQJE6pdymrjiCOOKNfX17d6P9u3b9/yd77znfKkSZOqXV6H1a9fv1ZzVldXVz7ssMPKN910U7m5ubna5XVIM2bMKP/ud78rH3DAAeXu3bu3ep/7iU98ovzf//3f5ZdffrnaZXY4u+yyS+U1smW+dtppp/IFF1xQfuONN6pdXofUrVu3ck1NTXnixInVLmW14rnWdu/9zLksM2fOLJdKpfLaa6+9Cqrq+O66667Kc613797l22+/vdL2yiuvlL///e+Xd95558pnqn/84x9VrLb69t1333JNTU3517/+dbVLWa2st9565ZqamvJpp51W7VLoAIQqVXTqqaeWS6VSuW/fvuWf/OQn5UMOOaRcKpXKhx9+ePnaa68tjxkzpjxgwIByTU1N+cADDyw/88wz1S656tZee+1yTU1NedasWdUuZbX01ltvlS+99NLy4MGDWwUsnTt3Lu+zzz7lq666qjx79uxql9khDBw4sFxTU1MeM2ZM5balvcG95557yqVSqbz55puv4go7puOPP75cU1NT/tGPflTtUlYbxx9/fLlUKpW32GKLygf19z7XFixYUD700EPLpVKpfOSRR1ar1A5F8Mmq0nIAzA033FDtUlYrc+fOLV9//fXlYcOGlRsaGlp9oTZw4MDyj3/84/K0adOqXWaHc88995RPOOGEcv/+/VsFLOuvv375m9/8Zvm+++6rdokd1qxZs8q///3vywceeGC5rq6uMne1tbXlz372s+Xf/OY3PkMs5sUXXyz/7Gc/K++2226tvvTu0qVLeb/99iuPHTu2PHfu3GqX2WH07t27XFNTU543b161S1nteK61TdFQZeHChYX7rgkOOOCAcqlUKh966KHLPBBh4cKF5WHDhlW+d1uTjRs3rlwqlcqf/vSnq13KaqWurq5cU1NTfuedd6pdCh2A7b+q6OMf/3ieeOKJ3HPPPdl5553z0ksvpX///tlrr70qJ1d/5ZVXss022+Stt97K/fffn0GDBlW36CrbZpttMnny5EydOjX9+/evdjmrtenTp+f666/PuHHjcvvtt2f+/PmVrToOPPDAylYda6ru3btn3rx5eeeddypL+2tqaipbMrWYN29eunXrli5dumTu3LnVKrfDeOKJJzJo0KD06tUrjz32WNZdd91ql9ThbbLJJpk2bVr+8pe/VPb3Xdpz7emnn84WW2yRDTfcMC+99FK1yu0wttpqq/zv//5vLrvssowYMSLJ0uft3nvvzW677ZbNNtssTz31VJWqXbV+85vfJEnq6+tzwAEHLHF7Wxx11FErqqzV1o9+9KN873vfyze/+c38/Oc/r3Y5q6V58+ZlwoQJueaaa3LTTTelsbExyaJ/s7vvvnuOOuqoHHTQQbbSeY/77rsv48aNy/jx4/PCCy8kWbQ392abbVbZyvVDH/pQlavsmGbPnp2bb74548aNy6233po5c+YkWfT+bujQoRkxYoTtThbzyiuvZPz48bnmmmty7733ZuHChSmVSunRo0cOOuigDB8+fI0/B8EXvvCF3Hzzzbnzzjudo/Jf4Ln2/pb2fnZpJk+enEGDBmXAgAGZOnXqqimuA+vTp0/eeOONPPHEE8vdYu6pp57KRz/60fTp0ycvv/zyKqyw4znggANy00035YwzzrBFVUEf+9jH8uSTT+bVV1/N+uuvX+1yOpyW96srwoABA1bYfa0sQpUqqqurS1NTU+bPn5+ampokyUc/+tG8+OKLmTlzZmW/x1/84hc57rjjMmzYsPz2t7+tZslVd/HFF2fkyJE59thjc+mll1a7nA+MxsbGXHrppfne976XpqamynNvwIABOfPMMytfWK5JevbsmcbGxkyfPr2yR+bS3uC++uqr6du3bxoaGirndFjTXXrppfna176WbbfdNtdff3369etX7ZI6tG7dumX+/PmZM2dOunTpkmTpz7Xm5uZ06dIlnTt3TlNTU7XK7TAEn8vWsn/5hz/84VZB0uLn1yrKiRWTt956K1tvvXWmT5+ee++9d40/wOVfNX/+/Pz5z3/Otddem9///veVf6/dunXLQQcdlJNPPjkf+9jHqlxlx/OPf/wj1157bcaPH5/nnnuu8m951113zTHHHJMjjjgi3bt3r3KVHc8rr7ySX//61znnnHMyb968ynnySqVS9thjj1x77bXp2bNnlavsWF577bWMHz8+1157bf76179W5qxfv34ZMWJEjjvuuPTu3bvKVa56Dz74YHbbbbdsuumm+dvf/uZ5swJ4ri3y3oNeRowYkU6dOuXyyy9f5kmwX3nllVx88cV5/vnnc8IJJ+QnP/nJqii1Q+vatWuam5tbfb+2NAsWLEjnzp3XqM8Gy/Luu+/mS1/6UsaNG5cvfOEL+e///u9suumm1S6rQxs9enROPfXUnHzyyfnRj35U7XI6nE6dOq2Q+ymVSqvFOcWFKlXUEqrMnDkzdXV1SZIjjjgi11xzTat0/bXXXsuGG26Yvn375sUXX6xmyR3CkUcembFjx+a4447Lf/3Xf1W+hKTtGhsb84c//CFjx47NHXfckebm5pTL5dTU1GSjjTbKCy+8kFKplAsvvDBf//rXq13uKrXnnnvm7rvvziWXXJIvfelLSZb+hW1L0LfHHnvkzjvvrFa5Hcbrr7+eJLnlllvyrW99KzU1NfnOd76To48+epkneN5ggw1WZYkdzoYbbpjXX389L7zwQiWAWtpz7Zlnnsnmm2+e3r1755VXXqlWuR2G4HPZ9txzz5RKpfTr1y9XXnnlEre3hf/XFvnHP/6RIUOGpFwuZ8yYMdl///2rXdJqa+rUqRk7dmzGjh2bRx55ZIkvjOrq6vLHP/7RkeBLMXHixPz+97/PxRdfvERA8NGPfjS33nrranFU38r25ptvZty4cRk7dmz+9re/pbxoy+t06tQpn/nMZ7LzzjvniiuuyAsvvJDhw4fniiuuqHbJHcrs2bNz00035eqrr84tt9zS6kuNUqmUDTbYIBMmTMhWW21VxSqr48Ybb8ywYcPSu3fvnH/++dlnn32qXdJqzXNtkfce9FIulwu9XyuXy9l6661z9913W+mZZKONNsorr7ySRx99dLkHZ/zv//5vBg4cuMZ/vzZkyJDK9bvvvjuzZ89Op06dsttuuy31c3upVMott9yyKkvskObPn5/Bgwfn7rvvzrnnnptvf/vb1S6pQ1leoNlWCxcuXGH3tbIIVapo4MCB+ec//5nrrrsuX/jCF5IsSj1PO+20XHnllTniiCOS/P9H2Xbr1i2zZ8+uZslV98c//jELFy7MqFGjct9996Vfv3458sgjM2jQoMqXau+1+IsFi45GuOGGGzJ27NhMmDCh1YfyQYMGZdiwYTniiCPSt2/fXHXVVRk+fPgatW1Oi9/85jcZMWJE6uvr86tf/SqHHHLIEl/YtnzJNn369IwZM8Y2OVnyyIT3+1CwuhyBsDIddNBBuf7663PSSSfl3HPPTbL0cOD//b//l//+7//OgQcemGuvvbZa5XYYgk9WlWuuuSZJMm3atJx11lmZPXt29txzz+WGxYceeuiqLLHDe+mll3LNNdfk6quvzgMPPJBk0etDbW1tPve5z2XYsGHZeeed85//+Z/5xS9+kR133DH33XdflavuGCZNmpSrr74611xzTWVLhXK5nHXXXTeHHHJIdt555/ziF7/I/fffn/333z/XX399dQuuknfeeSfjx4/P2LFj8z//8z9ZsGBB5f3t9ttvn+HDh+fwww+vHMgxbdq0bLzxxunZs2fefPPNapbeITQ1NeWPf/xj5cvtOXPmVObv4x//eOXf6M9+9rPceOONrbarXlO0/L/+1FNPZfLkyZUv/T/xiU8s9XNoqVTK2LFjV3WZHZ7n2pLee9DLXXfdlVKptMyDC0qlUtZdd93sscce+cpXvmKV4v8ZMWJEfvOb32SfffbJzTffvMzPoPvuu29uu+22fPGLX8yvf/3rVVtkB9LWL79LpZIV7FkUys2ePTsnnHBC7rvvvmy//fY55phjlvudpBXYH1xClSo6/fTT88Mf/jD19fU555xz8q1vfSt///vf88lPfjK77rpr/vKXv6Rbt2658sorc9RRR62RX2y/1+JHcSx+dN6y+MJ2kblz5+bmm2/O2LFj88c//jFz586tzN/GG2+cI488MsOGDVviP/uWpbFr4nZD5XK58oarVCqlb9++eemll1JTU5ODDjooU6ZMqRxhO3jw4Nx6661tPgL8g6g9RyasDkcgrEx333139thjj5RKpXz961/PiSeemI985COVcOCdd97JJZdcktNOOy0LFy7M//zP/+RTn/pUtcuuOsEnq0pbjyD13mOR1157Lddee22uvvrq/P3vf6+sFkiSXXbZJcOGDcthhx2WXr16VcY4kGiRxx9/PFdffXXGjh2bZ555Jsmi5123bt3yb//2bxk+fHj22WefdO7cOcmiLerWX3/91NfX55133qli5aveb3/724wdOzZ/+ctfMn/+/Mpz7MMf/nCGDRuWYcOGLXVv/ZbnWteuXSvnW1nTNDc3509/+lOuvvrq3HjjjZk1a1ar7ZeOOOKIDB8+PFtvvXVlzLvvvpsePXqkrq4us2bNqlbpVdHyWlD06xNfQP7/PNfapug5VWjtySefzCc+8YnMnz8/n/rUp/If//Ef2WGHHdLQ0JDGxsbcf//9Offcc3PXXXelS5cumTRpUrbccstql101Z599dpvHOO9K27e38rngg02oUkUzZ87Mdtttl6effrrVSbJaTmDfs2fPbLTRRnn00UdTLpfzrW99Kz/96U+rXHV1bbLJJm3+4vq5555bSdWsPurr6/Puu+9W3rz26tUrhxxySIYNG5ZPfvKTyxz35JNPZsstt6xsBbammTNnTr7+9a8v91xGw4YNy8UXX1zZwm9N9/zzz7d5zMYbb7wSKlm9nHHGGfnBD36wxP9v6623Xt56663Kl5GnnnpqfvCDH1Spyo5F8Mmq4r1H233mM5/JX//61yxcuLDy3uOjH/1ohg0bliOPPHKZ+3W//vrr6dOnT9Zdd9289dZbq7LkDuH73/9+xo4dm3/+859JUtmSda+99sqwYcNy0EEHLXWLl9mzZ2fttddO9+7d8+67767qsqtq8S+6N9hggxx22GEZNmxYdtxxx+WOu+eeezJ8+PB8/OMfz80337yKqu04vvSlL+X666+vhHDlcjkNDQ05+OCDM2zYsMrBHu/V2NiYddddN2uvvXZmzJixiquuLl9Ato/nWtsJVdrvd7/7XUaMGLHMg/ZatoK87LLLHGxFuziIlMUJVars9ddfz4knnpj77rsvzz77bJLk/vvvz957752ZM2dW+vXr1y8PPvjgGn/uAdqnpqYm3bt3z/77759hw4bl85//fGpra9933Kuvvponn3wyPXv2/MDvZbs8jz76aMaPH5/HHnssM2bMSH19fQYOHJgDDzyw1RFV8K8YM2ZMTjvttLz66qtLtPXp0yff//73K9tcsYjgEzqmlg+cffv2zeGHH55hw4Zlm222ed9xjz/+eK699tpsvPHGGTFixEqusuNZ/IP6tttum2HDhuXwww/PhhtuuNxxEydOzMknn5yPfOQj+eUvf7myy+xQevTokaFDh2bYsGHZe++9V9gJUj/oWp5rXbt2zb777pthw4Zl3333fd9zVT700EM5//zzs9lmm+W0005bFaWymvNcazuhyr/mr3/9a77zne9Uthtd3A477JBzzz03e+yxRxUqAz5ohCodxMKFC1t9kHrxxRfz61//OtOmTcsmm2ySL3/5y1l//fWrWCGrs9/+9rcZOnRo1l577WqXAizH/Pnzc8899ywR4H3yk5+sbPPCkgSf0LF86UtfyrBhw7LXXntZIdYGi29Z9ZGPfKTa5awW5syZ43wC7fCZz3ymsvqpoaGh2uXwAea51nZnnXVWOnXqlNNPP73apazWXnjhhUyePLny2WCrrbayQwKwQglVWK29+uqrmTRpUhobG9PQ0JBtttkmffr0qXZZAAAAfAA999xzGTt27BKfQw899NB86EMfqnZ5ACvctGnT0r9//2qXAR2KUKWKyuVyfv/732fixImttvpallKplMsuu2wVVNbxTZo0KSeddFLuuuuuJdr23HPP/Nd//VehbSaAlae5uTmTJ0/OU089lZkzZ+YrX/lKXn755UyYMCEHH3ywlVP/Z/bs2fnZz37WpteC22+/fRVUxurqN7/5TWpqajJ8+PBql/KBNWfOnMoXaY6Sh+prbm7OlClT8sYbb7xv3913330VVMQH0cKFC3PyySfnZz/7WeUk9OVyubIir1OnTvn3f//3jBo1ql377gOsav/85z9z55135u23317quT8WLFiQKVOm5Kabbir0WRXWJEKVKvrmN7+Ziy66KElS5NdQKpUqb97WZDfeeGMOP/zwNDU1LXPeunXrlrFjx2a//fZbxdVV17HHHrtC7keAt+hIjJaTnnbr1q3a5axWmpqacvbZZ+eSSy7J9OnTkyz6kDlv3rw8+OCD2WGHHdKnT5+MHz8+u+yyS5Wrrb5hw4bl6quvLvQ6kHgtWJpHHnkkvXv3rqxUfPLJJ/OLX/wiu+yySw466KBC55D6IKmpqUnnzp3T1NRU7VI+UGbOnJmf/vSnueqqqzJlypTK7ZtvvnmGDRuWE088caknEYcV6Y033rAl8Hv853/+Z374wx8WPjChubl5FVTFB9GIESPy29/+NuVyOb169cp2222XddddN9OnT88DDzyQt99+O6VSKUcddVTGjBlT7XIBlusb3/hGLr744vft1xIe+wya/OhHP0pzc3OOOOKIbL755tUu5wOnXC5nypQpOe+883LBBRdUu5z3JVSpovXXXz9vv/12PvWpT+VTn/pUoS99zjzzzFVQWcf13HPPZeDAgZkzZ0623XbbnHrqqdl1110rb2bvueeejBo1Kg899FDq6ury6KOPZtNNN6122atMTU1NSqXSMr+cXXxf88X7vPd2L5jJeuutl3feeSe33nprPvvZz1a7nNXGvHnz8tnPfjZ/+9vfWj3HWk62+Nhjj+UTn/hEyuVyevbsmccee2yN37JvnXXWycyZM3PkkUdmzz33LPRacPTRR6+Cyjq+J554IocffngeffTR/Pa3v82RRx6ZJLnrrrsq53LYbLPNcuONN65R5yd4vxOcTp48OaVSKVtttdUqrmz19dRTT+Xf/u3f8swzzyz1NbZUKuXDH/5w/vjHP2azzTarQoUdy+9+97ssWLAgn/70p7PRRhtVu5zVynPPPZczzjgjXbp0qRzgsmDBgpxxxhk577zzMnv27PTu3Ts//elPc9hhh1W52ur7r//6r3z3u9+t/H3ddddNfX39csc899xzK7ssPoD+8Ic/5KCDDkqnTp0yevTofOtb32p1vrv58+fn5z//eU4++eSUy+WMHz8+BxxwQPUK7iDuvvvulMvlDBw4MD179qx2OauFfffdN3PmzMmoUaOy0047VbscPqB+9atf5Wtf+1pqamqy77775tlnn83jjz+eXXfdNdtss01mzZpVeT+355575otf/GJGjBhR7bKrbuONN86LL76YCRMm5DOf+Uy1y1mtTJkyJd/73vcqK6PeL45YHb6TXLMO3exgOnXqlCT54x//mLq6uipXs3r40Y9+lDlz5mSPPfbIhAkTWr2R7dOnTw466KDsv//+2XvvvfO3v/0to0aNyiWXXFLFilet5YVu//znP3PNNdckSQYOHJhtt902G264YV5//fVMnjw5Dz74YEqlUj7/+c9785ZFL5bTp0/PnDlzql3KauXnP/957r777tTV1eWMM87IF77whWy55ZaV9oEDB+aZZ57JAQcckEcffTTnnntufvKTn1Sx4upraGjIzJkz88tf/jJrrbVWtctZbbz++uvZa6+98tprry3R1tDQkE033TTPP/98pkyZksGDB+fhhx/OuuuuW4VKO55BgwZZydIGM2fOzD777JPnnnsuPXr0yNFHH93qgI577703V1xxRZ5++ul8/vOfz8MPP7zGb2/43e9+N6+++mr+/Oc/C1Xa4KWXXsrOO++cN998M3vssUfl9h/96EcZNWpU5e+vvvpqhg8fno9+9KP5xCc+UY1SO4xf/epXSZLtt98+V1xxRav3HLAiXXjhhSmVSvne976Xk046aYn2zp075zvf+U5mzZqVc845JxdeeKFQJckhhxySN954wxeQbTBlypQ888wztlpipbr88stTKpVyxRVXZNiwYXn44Yez7bbbpm/fvjn//POTLDqQ73Of+1wmT56cffbZp8oVdwxbbbVVXnzxxbz44ovVLmW18uyzz2annXZKY2NjoR06BgwYsAqqWgHKVM33v//9cqlUKl900UXVLmW10b9//3JNTU35kUceWW6/SZMmlUulUrl///6rqLKO7Yknnig3NDSUN9hgg/LNN9+81D633357uW/fvuXu3buX77///lVcYcfzwx/+sFwqlcrf+ta3ql3KamXgwIHlmpqa8pgxYyq3lUqlcufOnVv1u+eee8qlUqm8+eabr+IKO56LL764XCqVyqeddlq1S1mtnHTSSeVSqVQeMGBA+cYbbyy/++67S/R59NFHy1tssUW5pqam/L3vfa8KVVbH0v7NtaWd1s4888xyqVQqb7LJJuXnnntuqX2effbZ8sYbb1yuqakpn3XWWau2wA5or732KtfU1JSvuuqqapeyWvna175WLpVK5Z122ql81113lcvlcrm5ubncq1evcm1tbfn8888vP/jgg+XddtutXCqVyl/84herXHH1de3atVxTU1P+3//932qXwgfcuuuuW66pqSm/9dZby+335ptvlkulUnmdddZZRZV1bLvssku5pqamfO2111a7lNXGiBEjyjU1NeWf//zn1S6FD7D6+vpyTU1Nec6cOZXbNtxww/J6663Xqt/JJ59cLpVK5e985zurusQOady4ceVSqVT+9Kc/Xe1SVisjRowol0ql8l577VV+6KGHyqNGjSqXSqXyiSeeWH7zzTfLzz33XHnIkCHlUqlUPuSQQ6pdbmG2/6qyww8/POPGjcu+++6bvfbaK7169Vpu/6OOOmoVVdYxdevWLfPnz09zc3OrLavea+HChamtrU2XLl0yd+7cVVhhx3TAAQfkpptuys0337zcIwwmTJiQz3/+8xk8eHBuu+22VVhhx/PWW29l6623rhyFPGjQoGqXtFro3r175s2bl3feeadyboGlbUU0b968dOvWzb/R/3PEEUfkmmuuycc//vFCrwVnnHHGKqqs4/roRz+aKVOm5NZbb83gwYOX2e+2227LkCFD8rGPfSyPPfbYKqywet5v+6/3a6e1j3/843niiSdy0003ZciQIcvsd8stt2S//fbLlltumccff3wVVtjxjBkzJl/60pdywAEH5Lrrrqt2OauNTTfdNC+88EImTZqUrbfeOklyzz335FOf+lQOOuigjBs3LsmiLfwGDRqUD3/4w63O77Mm2mijjfLKK69k7ty5rVaws8hf//rXFXZfu++++wq7r9XRWmutlblz52b27Nnp2rXrMvvNnTs3dXV1qaury6xZs1ZhhR3T+eefnxNOOCFHH32088wU9I9//CO77LJLPvzhD2fy5MnO7/ke55xzTpKkZ8+eOf7445e4vS3W5M9UXbt2TXNzc5qamirbT++///655ZZbMm3atPTt2zfJoi1wP/rRj2aLLbbIE088Uc2SO4yW79fOOOOMNf4UDUW1bJs2ZcqUfOhDH8q7776bddddN1tttVUefPDBJIu20dxpp53yyCOP5Nprr83QoUOrXHUB1U511mQXXnhhuVQqlWtqagpf1nQtK1UeffTR5fZ75JFHrFRZTMuRVQsWLFhuvwULFpRLpVK5oaFh1RTWwU2cOLHcq1evcs+ePcs33HBDtctZLbQ81xobGyu3Le2o+FdeecVRfP/ne9/7XuX/+Pd7TWhpp1zu1q3bEkdXLc2sWbPKpVKpXFdXt4oqqz4rVVasludac3PzcvvNnz+/XCqVyt27d19FlXVc8+fPL3/yk59cYuUiy9elS5cl3q/99Kc/LdfU1JQvvfTSym3Nzc3lUqlU7tatWzXK7FCOOOKIck1NTfmWW26pdikdUls/ay7r0qlTp2o/lKrbZpttyjU1NeWrr756uf2uuuqqcqlUKm+zzTarqLKObdasWeUtt9yyXFtbW/7Tn/5U7XJWG2effXa5VCqVhwwZUp45c2a1y+lQWv5fe++OB235/85nqnJlhfXiu5Scdtpp5Zqamla7m3h/u6RZs2aVDzvssHJNTU156NCh5WeffbbaJXV4Le9xF7fDDjuUa2try3Pnzq3c9oc//KFcKpXKn//851d1ie3inCpVdPbZZ6dUKqWhoSEf//jHC52ceE03ePDgXH755TnxxBPzpz/9qXJemsUtWLAgJ554YkqlUj73uc9VocqOZ/78+UmSl19+ebl7m7/yyitJVo8TQq1sLeefOeWUU3LWWWdl6NCh2XPPPXP00Ucv82ihQw89dFWW2CFtvfXWufvuuzNu3Lh86UtfWma/G264IUmsAEpywQUXJEk222yz7Ljjjl4LCuratWvmzZuXOXPmLPcIvpbVGI5gpr3WXnvtvP3223nttdcqR+0tzeuvv54kzo2UpLa2NuPHj89BBx2UL33pS5k8eXLOPvvsygpGlq5Lly5pbm7Ou+++W5mrRx55JEnr18uW87116dJlldfY0Zxxxhm5+eabM3LkyNx9992rzx7cq8iAAQOWu7qf4lrOOXD88cdniy22yDbbbLNEn4ceeijf/OY3UyqVMnz48CpU2fGstdZaueGGGzJkyJB84QtfyI9//OPKHLFsZ5xxRjbYYIOcdNJJ+fjHP54f/OAHOfLII5f6/cea5qijjkqpVErv3r2XejvFfOYzn8mYMWNy7LHH5vLLL8/222+fnXfeOeVyOWPHjs2+++6bJJk0aVKSvO9OCmuKxVet19XV5YYbbsjNN9+c3XbbbamfSUulUm655ZZVWWKH1K1bt8yaNStvv/12evbsmWTRd0cPPvhg/vd//7fymrr33nsnSe6///6q1doWtv+qovXXXz9vv/12XnrppfTp06fa5awWnnnmmWy99daZO3dudthhh5x66qnZZZdd0tDQkHfeeSd///vfM2rUqPzjH/9I9+7d8+ijj+ZDH/pQtcuuut133z333HNPjjrqqOUuu/7qV7+aSy+9NLvuumv+9re/rcIKO56amppWb8rK5fJy36SVSqU0NzevitI6tN/85jcZMWJE6uvr86tf/SqHHHLIElsN/eMf/8iQIUMyffr0jBkzZo3f1rBv37557bXXMn369NTX11e7nNXGnnvumbvvvjujRo3Kd7/73WX2+8///M/8x3/8R/bYY4/ceeedq7DC6rH914q133775Y9//GOOO+64nHfeecvs981vfjMXXnhh/u3f/i033njjKqyw4/nGN76RZNFBGldddVVmz56d+vr6DB06dJkfOC+88MJVXWaHs/3222fSpEm54oorMnz48Lz77rvZbLPN0tjYmOnTp1e2HPrzn/+cz33uc9l2223zwAMPVLnq6vvrX/+agw46KDU1NTn33HNz5JFHCtJZ4ebNm1fZlqS2tjb77rtvdt1111afQ2+55ZY0Nzdn0KBBue+++wSfSc4999wkyYwZM/Lzn/88s2fPzoc//OEMHz58mQfFLO993Zqgrq6ucn3+/PlZuHBhkkUHCNXU1CzRv1Qq5d13311l9fHB8Mwzz2TQoEGZPXt2+vTpk5deeilNTU3p379/3nrrrQwePDgf/ehHc/XVV+f111/PQQcdVDnwdE22tH+Dy1MqlRy0nGS33XbL3//+93z/+9/PqaeemiS56KKL8s1vfjM///nPK1v5zZgxI+uss07WWmutzJw5s5olFyJUqaJ///d/z3nnnZe//e1v2WWXXapdzmrjuuuuy5FH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\n",
      "text/plain": [
       "<Figure size 2000x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 3、求和,绘图\n",
    "genre_zero.sum().sort_values(ascending = False).plot(\n",
    "    kind=\"bar\", figsize=(20, 8), fontsize = 20, colormap = \"cool\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1ba4f283",
   "metadata": {},
   "source": [
    "# 缺失值处理"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1f1d1d52",
   "metadata": {},
   "source": [
    "## 判断是否存在缺失值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "fa40a735",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Rank</th>\n",
       "      <th>Title</th>\n",
       "      <th>Genre</th>\n",
       "      <th>Description</th>\n",
       "      <th>Director</th>\n",
       "      <th>Actors</th>\n",
       "      <th>Year</th>\n",
       "      <th>Runtime (Minutes)</th>\n",
       "      <th>Rating</th>\n",
       "      <th>Votes</th>\n",
       "      <th>Revenue (Millions)</th>\n",
       "      <th>Metascore</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>995</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>997</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>998</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1000 rows × 12 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Rank  Title  Genre  Description  Director  Actors  Year  \\\n",
       "0    True   True   True         True      True    True  True   \n",
       "1    True   True   True         True      True    True  True   \n",
       "2    True   True   True         True      True    True  True   \n",
       "3    True   True   True         True      True    True  True   \n",
       "4    True   True   True         True      True    True  True   \n",
       "..    ...    ...    ...          ...       ...     ...   ...   \n",
       "995  True   True   True         True      True    True  True   \n",
       "996  True   True   True         True      True    True  True   \n",
       "997  True   True   True         True      True    True  True   \n",
       "998  True   True   True         True      True    True  True   \n",
       "999  True   True   True         True      True    True  True   \n",
       "\n",
       "     Runtime (Minutes)  Rating  Votes  Revenue (Millions)  Metascore  \n",
       "0                 True    True   True                True       True  \n",
       "1                 True    True   True                True       True  \n",
       "2                 True    True   True                True       True  \n",
       "3                 True    True   True                True       True  \n",
       "4                 True    True   True                True       True  \n",
       "..                 ...     ...    ...                 ...        ...  \n",
       "995               True    True   True               False       True  \n",
       "996               True    True   True                True       True  \n",
       "997               True    True   True                True       True  \n",
       "998               True    True   True               False       True  \n",
       "999               True    True   True                True       True  \n",
       "\n",
       "[1000 rows x 12 columns]"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 如果有缺失值返回 False\n",
    "no =  pd.notnull(df)\n",
    "\n",
    "no"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "28427a92",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "np.False_"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.all(no)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "f929b5b4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Rank</th>\n",
       "      <th>Title</th>\n",
       "      <th>Genre</th>\n",
       "      <th>Description</th>\n",
       "      <th>Director</th>\n",
       "      <th>Actors</th>\n",
       "      <th>Year</th>\n",
       "      <th>Runtime (Minutes)</th>\n",
       "      <th>Rating</th>\n",
       "      <th>Votes</th>\n",
       "      <th>Revenue (Millions)</th>\n",
       "      <th>Metascore</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>995</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>997</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>998</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1000 rows × 12 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Rank  Title  Genre  Description  Director  Actors   Year  \\\n",
       "0    False  False  False        False     False   False  False   \n",
       "1    False  False  False        False     False   False  False   \n",
       "2    False  False  False        False     False   False  False   \n",
       "3    False  False  False        False     False   False  False   \n",
       "4    False  False  False        False     False   False  False   \n",
       "..     ...    ...    ...          ...       ...     ...    ...   \n",
       "995  False  False  False        False     False   False  False   \n",
       "996  False  False  False        False     False   False  False   \n",
       "997  False  False  False        False     False   False  False   \n",
       "998  False  False  False        False     False   False  False   \n",
       "999  False  False  False        False     False   False  False   \n",
       "\n",
       "     Runtime (Minutes)  Rating  Votes  Revenue (Millions)  Metascore  \n",
       "0                False   False  False               False      False  \n",
       "1                False   False  False               False      False  \n",
       "2                False   False  False               False      False  \n",
       "3                False   False  False               False      False  \n",
       "4                False   False  False               False      False  \n",
       "..                 ...     ...    ...                 ...        ...  \n",
       "995              False   False  False                True      False  \n",
       "996              False   False  False               False      False  \n",
       "997              False   False  False               False      False  \n",
       "998              False   False  False                True      False  \n",
       "999              False   False  False               False      False  \n",
       "\n",
       "[1000 rows x 12 columns]"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 如果有缺失值返回 True\n",
    "isno = pd.isnull(df)\n",
    "\n",
    "isno"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "0e629888",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "np.False_"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.all(isno)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "57bf3ce9",
   "metadata": {},
   "source": [
    "## 存在缺失值，并且是 np.False_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "d52776dd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Rank</th>\n",
       "      <th>Title</th>\n",
       "      <th>Genre</th>\n",
       "      <th>Description</th>\n",
       "      <th>Director</th>\n",
       "      <th>Actors</th>\n",
       "      <th>Year</th>\n",
       "      <th>Runtime (Minutes)</th>\n",
       "      <th>Rating</th>\n",
       "      <th>Votes</th>\n",
       "      <th>Revenue (Millions)</th>\n",
       "      <th>Metascore</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Guardians of the Galaxy</td>\n",
       "      <td>Action,Adventure,Sci-Fi</td>\n",
       "      <td>A group of intergalactic criminals are forced ...</td>\n",
       "      <td>James Gunn</td>\n",
       "      <td>Chris Pratt, Vin Diesel, Bradley Cooper, Zoe S...</td>\n",
       "      <td>2014</td>\n",
       "      <td>121</td>\n",
       "      <td>8.1</td>\n",
       "      <td>757074</td>\n",
       "      <td>333.13</td>\n",
       "      <td>76.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Prometheus</td>\n",
       "      <td>Adventure,Mystery,Sci-Fi</td>\n",
       "      <td>Following clues to the origin of mankind, a te...</td>\n",
       "      <td>Ridley Scott</td>\n",
       "      <td>Noomi Rapace, Logan Marshall-Green, Michael Fa...</td>\n",
       "      <td>2012</td>\n",
       "      <td>124</td>\n",
       "      <td>7.0</td>\n",
       "      <td>485820</td>\n",
       "      <td>126.46</td>\n",
       "      <td>65.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Split</td>\n",
       "      <td>Horror,Thriller</td>\n",
       "      <td>Three girls are kidnapped by a man with a diag...</td>\n",
       "      <td>M. Night Shyamalan</td>\n",
       "      <td>James McAvoy, Anya Taylor-Joy, Haley Lu Richar...</td>\n",
       "      <td>2016</td>\n",
       "      <td>117</td>\n",
       "      <td>7.3</td>\n",
       "      <td>157606</td>\n",
       "      <td>138.12</td>\n",
       "      <td>62.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>Sing</td>\n",
       "      <td>Animation,Comedy,Family</td>\n",
       "      <td>In a city of humanoid animals, a hustling thea...</td>\n",
       "      <td>Christophe Lourdelet</td>\n",
       "      <td>Matthew McConaughey,Reese Witherspoon, Seth Ma...</td>\n",
       "      <td>2016</td>\n",
       "      <td>108</td>\n",
       "      <td>7.2</td>\n",
       "      <td>60545</td>\n",
       "      <td>270.32</td>\n",
       "      <td>59.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>Suicide Squad</td>\n",
       "      <td>Action,Adventure,Fantasy</td>\n",
       "      <td>A secret government agency recruits some of th...</td>\n",
       "      <td>David Ayer</td>\n",
       "      <td>Will Smith, Jared Leto, Margot Robbie, Viola D...</td>\n",
       "      <td>2016</td>\n",
       "      <td>123</td>\n",
       "      <td>6.2</td>\n",
       "      <td>393727</td>\n",
       "      <td>325.02</td>\n",
       "      <td>40.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>993</th>\n",
       "      <td>994</td>\n",
       "      <td>Resident Evil: Afterlife</td>\n",
       "      <td>Action,Adventure,Horror</td>\n",
       "      <td>While still out to destroy the evil Umbrella C...</td>\n",
       "      <td>Paul W.S. Anderson</td>\n",
       "      <td>Milla Jovovich, Ali Larter, Wentworth Miller,K...</td>\n",
       "      <td>2010</td>\n",
       "      <td>97</td>\n",
       "      <td>5.9</td>\n",
       "      <td>140900</td>\n",
       "      <td>60.13</td>\n",
       "      <td>37.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>994</th>\n",
       "      <td>995</td>\n",
       "      <td>Project X</td>\n",
       "      <td>Comedy</td>\n",
       "      <td>3 high school seniors throw a birthday party t...</td>\n",
       "      <td>Nima Nourizadeh</td>\n",
       "      <td>Thomas Mann, Oliver Cooper, Jonathan Daniel Br...</td>\n",
       "      <td>2012</td>\n",
       "      <td>88</td>\n",
       "      <td>6.7</td>\n",
       "      <td>164088</td>\n",
       "      <td>54.72</td>\n",
       "      <td>48.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>997</td>\n",
       "      <td>Hostel: Part II</td>\n",
       "      <td>Horror</td>\n",
       "      <td>Three American college students studying abroa...</td>\n",
       "      <td>Eli Roth</td>\n",
       "      <td>Lauren German, Heather Matarazzo, Bijou Philli...</td>\n",
       "      <td>2007</td>\n",
       "      <td>94</td>\n",
       "      <td>5.5</td>\n",
       "      <td>73152</td>\n",
       "      <td>17.54</td>\n",
       "      <td>46.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>997</th>\n",
       "      <td>998</td>\n",
       "      <td>Step Up 2: The Streets</td>\n",
       "      <td>Drama,Music,Romance</td>\n",
       "      <td>Romantic sparks occur between two dance studen...</td>\n",
       "      <td>Jon M. Chu</td>\n",
       "      <td>Robert Hoffman, Briana Evigan, Cassie Ventura,...</td>\n",
       "      <td>2008</td>\n",
       "      <td>98</td>\n",
       "      <td>6.2</td>\n",
       "      <td>70699</td>\n",
       "      <td>58.01</td>\n",
       "      <td>50.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>1000</td>\n",
       "      <td>Nine Lives</td>\n",
       "      <td>Comedy,Family,Fantasy</td>\n",
       "      <td>A stuffy businessman finds himself trapped ins...</td>\n",
       "      <td>Barry Sonnenfeld</td>\n",
       "      <td>Kevin Spacey, Jennifer Garner, Robbie Amell,Ch...</td>\n",
       "      <td>2016</td>\n",
       "      <td>87</td>\n",
       "      <td>5.3</td>\n",
       "      <td>12435</td>\n",
       "      <td>19.64</td>\n",
       "      <td>11.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>838 rows × 12 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Rank                     Title                     Genre  \\\n",
       "0       1   Guardians of the Galaxy   Action,Adventure,Sci-Fi   \n",
       "1       2                Prometheus  Adventure,Mystery,Sci-Fi   \n",
       "2       3                     Split           Horror,Thriller   \n",
       "3       4                      Sing   Animation,Comedy,Family   \n",
       "4       5             Suicide Squad  Action,Adventure,Fantasy   \n",
       "..    ...                       ...                       ...   \n",
       "993   994  Resident Evil: Afterlife   Action,Adventure,Horror   \n",
       "994   995                 Project X                    Comedy   \n",
       "996   997           Hostel: Part II                    Horror   \n",
       "997   998    Step Up 2: The Streets       Drama,Music,Romance   \n",
       "999  1000                Nine Lives     Comedy,Family,Fantasy   \n",
       "\n",
       "                                           Description              Director  \\\n",
       "0    A group of intergalactic criminals are forced ...            James Gunn   \n",
       "1    Following clues to the origin of mankind, a te...          Ridley Scott   \n",
       "2    Three girls are kidnapped by a man with a diag...    M. Night Shyamalan   \n",
       "3    In a city of humanoid animals, a hustling thea...  Christophe Lourdelet   \n",
       "4    A secret government agency recruits some of th...            David Ayer   \n",
       "..                                                 ...                   ...   \n",
       "993  While still out to destroy the evil Umbrella C...    Paul W.S. Anderson   \n",
       "994  3 high school seniors throw a birthday party t...       Nima Nourizadeh   \n",
       "996  Three American college students studying abroa...              Eli Roth   \n",
       "997  Romantic sparks occur between two dance studen...            Jon M. Chu   \n",
       "999  A stuffy businessman finds himself trapped ins...      Barry Sonnenfeld   \n",
       "\n",
       "                                                Actors  Year  \\\n",
       "0    Chris Pratt, Vin Diesel, Bradley Cooper, Zoe S...  2014   \n",
       "1    Noomi Rapace, Logan Marshall-Green, Michael Fa...  2012   \n",
       "2    James McAvoy, Anya Taylor-Joy, Haley Lu Richar...  2016   \n",
       "3    Matthew McConaughey,Reese Witherspoon, Seth Ma...  2016   \n",
       "4    Will Smith, Jared Leto, Margot Robbie, Viola D...  2016   \n",
       "..                                                 ...   ...   \n",
       "993  Milla Jovovich, Ali Larter, Wentworth Miller,K...  2010   \n",
       "994  Thomas Mann, Oliver Cooper, Jonathan Daniel Br...  2012   \n",
       "996  Lauren German, Heather Matarazzo, Bijou Philli...  2007   \n",
       "997  Robert Hoffman, Briana Evigan, Cassie Ventura,...  2008   \n",
       "999  Kevin Spacey, Jennifer Garner, Robbie Amell,Ch...  2016   \n",
       "\n",
       "     Runtime (Minutes)  Rating   Votes  Revenue (Millions)  Metascore  \n",
       "0                  121     8.1  757074              333.13       76.0  \n",
       "1                  124     7.0  485820              126.46       65.0  \n",
       "2                  117     7.3  157606              138.12       62.0  \n",
       "3                  108     7.2   60545              270.32       59.0  \n",
       "4                  123     6.2  393727              325.02       40.0  \n",
       "..                 ...     ...     ...                 ...        ...  \n",
       "993                 97     5.9  140900               60.13       37.0  \n",
       "994                 88     6.7  164088               54.72       48.0  \n",
       "996                 94     5.5   73152               17.54       46.0  \n",
       "997                 98     6.2   70699               58.01       50.0  \n",
       "999                 87     5.3   12435               19.64       11.0  \n",
       "\n",
       "[838 rows x 12 columns]"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 删除\n",
    "\n",
    "# 不修改原数据\n",
    "df.dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "d14ab1ae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Rank</th>\n",
       "      <th>Title</th>\n",
       "      <th>Genre</th>\n",
       "      <th>Description</th>\n",
       "      <th>Director</th>\n",
       "      <th>Actors</th>\n",
       "      <th>Year</th>\n",
       "      <th>Runtime (Minutes)</th>\n",
       "      <th>Rating</th>\n",
       "      <th>Votes</th>\n",
       "      <th>Revenue (Millions)</th>\n",
       "      <th>Metascore</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>995</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>997</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>998</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1000 rows × 12 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Rank  Title  Genre  Description  Director  Actors  Year  \\\n",
       "0    True   True   True         True      True    True  True   \n",
       "1    True   True   True         True      True    True  True   \n",
       "2    True   True   True         True      True    True  True   \n",
       "3    True   True   True         True      True    True  True   \n",
       "4    True   True   True         True      True    True  True   \n",
       "..    ...    ...    ...          ...       ...     ...   ...   \n",
       "995  True   True   True         True      True    True  True   \n",
       "996  True   True   True         True      True    True  True   \n",
       "997  True   True   True         True      True    True  True   \n",
       "998  True   True   True         True      True    True  True   \n",
       "999  True   True   True         True      True    True  True   \n",
       "\n",
       "     Runtime (Minutes)  Rating  Votes  Revenue (Millions)  Metascore  \n",
       "0                 True    True   True                True       True  \n",
       "1                 True    True   True                True       True  \n",
       "2                 True    True   True                True       True  \n",
       "3                 True    True   True                True       True  \n",
       "4                 True    True   True                True       True  \n",
       "..                 ...     ...    ...                 ...        ...  \n",
       "995               True    True   True                True       True  \n",
       "996               True    True   True                True       True  \n",
       "997               True    True   True                True       True  \n",
       "998               True    True   True                True       True  \n",
       "999               True    True   True                True       True  \n",
       "\n",
       "[1000 rows x 12 columns]"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 替换缺失值\n",
    "\n",
    "for i in df.columns:\n",
    "    if np.all(pd.notnull(df[i])) == False:\n",
    "        print(i)\n",
    "        df[i] = df[i].fillna(df[i].mean())\n",
    "\n",
    "no =  pd.notnull(df)\n",
    "\n",
    "no"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e7f4939a",
   "metadata": {},
   "source": [
    "# 数据离散化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "edabf542",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0b3338fc",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5b1f62cf",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": false,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "220.667px",
    "left": "669.667px",
    "top": "110.125px",
    "width": "165px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
